-
Notifications
You must be signed in to change notification settings - Fork 16
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
Add nightly for each repository release stream #291
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't have rc1 in nightly. I'm not sure what a valid FULLVERSION
would be. For example, in our release pipeline we pass FULLVERSION
as the expected version and that would mean it expects nightly.0-rc1
in /usr/share/foreman*/VERSION
. Perhaps it should just not be set at all?
For now I shortened it to nightly. Right now this appears to be forced by https://github.com/theforeman/theforeman-rel-eng/blob/master/settings#L25-L29 and I wouldn't want to relax this for releases. Whereas having this ability to use scripts in all versions including nightly is strong for centralizing our scripts. Perhaps we take this version as is and keep iterating if FULLVERSIOn for nightly becomes tricky with other workflows? |
In #330 I made an effort to make some variables optional, which makes the files more logical. |
With #330 merged, what are you expecting to change here? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can now drop FULLVERSION
in all of these files. The flows that need it shouldn't run and otherwise properly error out.
Cleaned up, and seems to be working from my test scenarios on scripts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I should have caught this in the previous review, but more simplifications are possible.
releases/client/nightly/settings
Outdated
@@ -0,0 +1 @@ | |||
FOREMAN_VERSION='nightly' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We set this by default:
FOREMAN_VERSION=$VERSION |
FOREMAN_VERSION='nightly' |
releases/candlepin/nightly/settings
Outdated
@@ -0,0 +1 @@ | |||
FOREMAN_VERSION='nightly' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Candlepin doesn't have a Foreman version:
FOREMAN_VERSION='none' |
FOREMAN_VERSION='nightly' |
releases/plugins/nightly/settings
Outdated
@@ -0,0 +1 @@ | |||
FOREMAN_VERSION='nightly' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer a solution similar to client
where in releases/plugins/settings
we set FOREMAN_VERSION=$VERSION
and be done with it.
FOREMAN_VERSION='nightly' |
releases/plugins/settings
Outdated
PACKAGING_SUBDIR="packages/plugins" | ||
OSES="el8" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As said above: we can set it by default (and sort the file alphabetically):
PACKAGING_SUBDIR="packages/plugins" | |
OSES="el8" | |
FOREMAN_VERSION=$VERSION | |
OSES="el8" | |
PACKAGING_SUBDIR="packages/plugins" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't you still need a release/plugins/nightly/settings
file, since it will error out if it doesn't exist? By now that needs OSES="el8 el9"
.
27688ac
to
33e61ad
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last one, I promise ;)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Glad I didn't promise anything
This change will allow controlling for what OSes a given release from our release jobs, for nightly, and align it with a numerical release. Right now, we store in Jenkins the OSes nightly supports and then we iterate and call the
build_stage_repository
script [1]. By having the nightly releases captured here, our CI can instead callVERSION='nightly' PROJECT=<project> ./generate_stage_repositories
and allow configuration inside this repository to drive what is generated.In a similar fashion, we can make use of a single rsync script to stagingyum to handle uploads for nightly and releases in the same way without having to keep CI and this repository in sync. See theforeman/jenkins-jobs#369.
[1] https://github.com/theforeman/jenkins-jobs/blob/master/theforeman.org/pipelines/release/pipelines/foreman-rpm.groovy#L69-L73