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

Build promotion pipeline YAML #4625

Merged
merged 12 commits into from
Jan 28, 2020
Merged

Build promotion pipeline YAML #4625

merged 12 commits into from
Jan 28, 2020

Conversation

JohnTortugo
Copy link
Contributor

@JohnTortugo JohnTortugo commented Jan 13, 2020

Closes: #4601

Changes:

  • Most of the changes are to plumb parameters fetched from BAR/Maestro to the YAML stages/jobs.
  • Other set of changes is to patch DownloadBuildArtifacts tasks to be able to download from the current build or from a pointed build.
  • Renamed some files to make more clear the distinction of promote build logic and assign build to channel logic.

I've been testing the Build Promotion in this pipeline.

I also tested if the post-build.yml templates are still working when not used for promoting a build. See test here.

@JohnTortugo JohnTortugo self-assigned this Jan 13, 2020
@riarenas
Copy link
Member

Is there a reason why most of this is in eng/common? There's going to be a single build promotion pipeline that should take the yml from Arcade.

I'd like us to decouple the release variables that are really common from whatever is only needed for channel assignment after the fact. The pipeline can still reference the stages in eng/common, but unless there's something I'm missing, I don't think we need to distribute all of these changes to all repos.

Copy link
Member

@riarenas riarenas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic seems sound, but I'd like us to not add more files to eng/common unless it really makes sense for every repo to have this.

@JohnTortugo
Copy link
Contributor Author

JohnTortugo commented Jan 17, 2020

@riarenas - I addressed the comments we discussed offline: no new files in eng\common

Note that some variables are used only in build promotion and others only at build creation time. Other variables are used in both cases. The major change here is because we need to be able to download artifacts from the current build or from another [completed] build.

I use the same Job in setup-maestro-vars.yml for all vars because that reduces the number of changes to the other files. Otherwise I'd have to add a coalesce(xxxx, yyy) in every place we refer to a variable that can be declared in different jobs.

Testing the build promotion: https://dnceng.visualstudio.com/internal/_build/results?buildId=488127&view=results
Testing the post-build YAMLs for build creation: https://dnceng.visualstudio.com/internal/_build/results?buildId=488352&view=results
Testing the post-build YAMLs for build creation + activating a channel: https://dnceng.visualstudio.com/internal/_build/results?buildId=488415&view=results

@JohnTortugo
Copy link
Contributor Author

Ping

@riarenas
Copy link
Member

Sorry I missed the latest update. Looking now.

eng/promote-build.yml Outdated Show resolved Hide resolved
eng/promote-build.yml Outdated Show resolved Hide resolved
@riarenas
Copy link
Member

The test build at https://dnceng.visualstudio.com/internal/_build/results?buildId=479710&view=results failed. Maybe not caused by the changes, but the errors happened in one of the publishing tasks, so I'd like to have a successful build + publish with these changes before merge.

@JohnTortugo
Copy link
Contributor Author

Re-run again the tests:

@riarenas
Copy link
Member

riarenas commented Jan 24, 2020

Build promotion pipeline

This build didn't publish to any channels

@JohnTortugo
Copy link
Contributor Author

Tested it again here, now publishing to some channel:

Also added the check to validate that the channel exist.

@riarenas
Copy link
Member

Looks good to me, but I started thinking that it's not easy to tell what the pipeline is doing just from looking at the build.

I think we can look at what Davis did in this PR https://github.com/dotnet/arcade/pull/4664/files so that when looking at a build for that pipeline, it's clear which build was promoted, and to which channel. What do you think?

@JohnTortugo
Copy link
Contributor Author

Looks good to me, but I started thinking that it's not easy to tell what the pipeline is doing just from looking at the build.

I think we can look at what Davis did in this PR https://github.com/dotnet/arcade/pull/4664/files so that when looking at a build for that pipeline, it's clear which build was promoted, and to which channel. What do you think?

Yeah, looks simple and useful enough to include in this PR.

@JohnTortugo
Copy link
Contributor Author

@JohnTortugo
Copy link
Contributor Author

@JohnTortugo
Copy link
Contributor Author

Fixed a bug while enabling/disabling conditions. Ran new tests to test that part specifically:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[darc/maestro++] Remove RPR - Have a way to promote builds to channels after the fact
3 participants