Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jenkins omega build has no versionInfo.properties artifact #16

Closed
keturn opened this issue May 6, 2021 · 5 comments · Fixed by MovingBlocks/Terasology#4672
Closed
Labels
Type: Bug Issues reporting and PRs fixing problems

Comments

@keturn
Copy link
Contributor

keturn commented May 6, 2021

Launcher relies on a versionInfo.properties artifact being published alongside the zip to be able to show metadata about it before downloading the whole distribution.

Problem 1: The last few builds have produced zips but no accompanying versionInfo artifacts.

Problem 2: this type of failure can go unnoticed for a bit, because a jenkins archiveArtifacts step is satisfied if anything in its include list results in a file. It could have only zips, or even only an empty md5sums.txt file, and it wouldn't mark the build as failed or unstable.

@keturn keturn added the Type: Bug Issues reporting and PRs fixing problems label May 6, 2021
@keturn
Copy link
Contributor Author

keturn commented May 6, 2021

Problem 2.a: the distribution job gets the versionInfo.properties file via copyArtifacts from another job, and that lack of verification applies to the artifacts on the way in as well. So not only do we not notice when we fail to publish a thing, we also are oblivious if we failed to copy it in at the start.

@keturn
Copy link
Contributor Author

keturn commented May 6, 2021

This isn't the first time the path of that resource file has changed and it's broken something in the pipeline.

Which got me thinking: what if there were fewer artifacts to keep track of?

I tried adding this as a sh step to the Jenkinsfile:

set -e
cd distros/omega
unzip -j Terasology*.zip '**/engine-*.jar'
unzip -j engine-*.jar '**/versionInfo.properties'

It seems to work.

admittedly it does trade one kind of fragility (needing to change multiple jenkinsfiles any time this resource changes path) for a different kind of obscurity (needing to know how to dig that out of the guts of something within the distribution)

@skaldarnar
Copy link
Contributor

Without the file there are currently only 3 distributions available via the launcher - so I'd greenlight any hotfix to bring the versionInfo.properties back 🙃

I've shared my thoughts on versioning game releases on Discord, incl. some options to get rid of the version file and consuming Jenkins builds altogether. MovingBlocks/Terasology#4035 also contains some thoughts on release management and versions.

@keturn
Copy link
Contributor Author

keturn commented May 8, 2021

@Cervator
Copy link
Member

I plugged in the minimal fix for this - simple move of the file into an engine dir. Tests out.

I'm reluctant to change the flavor of hack that makes up the build harness and Jenkins side build copying, since that's really what it all is at this point. It made sense years ago but we have way better tech today and should be able to do something vastly better overall. I'd like to see us focus on that while just minimally maintaining the working setup :-)

The zip trick could be part of that, I just think it deserves consideration as its own thing vs just being a tweak as part of a tiny fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Issues reporting and PRs fixing problems
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants