-
Notifications
You must be signed in to change notification settings - Fork 183
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
Introduce "job" version of prepare-pipelines.yml, with "pool" defined to use Ubuntu 20.04 #4930
Conversation
The following pipelines have been queued for testing: |
/check-enforcer override |
I have approved all releases from #4930 (comment) |
Hello @azure-sdk! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
This PR, in tandem with PRs #4915 and #4916, addresses #4888. This PR subsumes the abandoned PR of #4911.
Specifically, this PR ensures that
prepare-pipelines.yml
is configured to use specificpool
, set to use Ubuntu 20.04:Without the pool definition pointing to Ubuntu 20.04, the steps within the file used an implicit default, which resolves to
ubuntu-latest
. This caused breakage as explained in #4888. Setting the pool to Ubuntu 20.04 will allow us to:prepare-pipelines.yml
pipelines [1], as Ubuntu 20.04 has the .NET Core version used by it [2];ubuntu-latest
, which is Ubuntu 22.04 [3], have .NET on them [4]. This step is accomplished by PRs Bump globals.yml .NET SDK version from3.1.405
to6.x
+ assorted changes #4916 and Update PipelineGenerator target framework fromnetcoreapp3.1
tonet6.0
#4915;azure-sdk-tools
(includinglatest
) to Ubuntu 22.04 #4967.Technical considerations of the changes
prepare-pipelines.yml
has only steps definition, which does not supportpool
definition. One needs to wrap the steps in job definition to supportpool
[5]..yml
file is located ineng/common/pipelines/templates/steps/
directory (note thesteps
), we cannot wrap the steps in job and leave it there; the introduction ofjob
necessitates introducing the changes ineng/common/pipelines/templates/jobs/
directory instead (note thejobs
), which is done in this PR.prepare-pipelines.yml
language pipelines need to be rewired to point to the newly introduced file. This approach was proposed in Add pool definition to prepare-pipelines.yml set to Ubuntu 20.04, and wrap the steps in a job #4911 (comment).Update prepare-pipelines.yml to use the new jobs-based template azure-sdk-for-net#32999
... more to come!
Testing done
I have confirmed the proposed modification to the
.yml
file will work by modifying the existingprepare-pipelines.yml
directly to have exactly the same contents as the/jobs/prepare-pipelines.yml
introduced in this PR, and observing the relevant build succeeds on azure-sdk-for-java:while it failed before this change:
Footnotes
[1] for example, internal / java / prepare-pipelines pipeline, or internal / net / prepare-pipelines pipeline.
[2] as evidenced by the Ubuntu 20.04 image software page, it has .NET Core 3.1. The pool definition value points to a 1ES hosted image which has the software listed on that page, as explained by this comment: #4888 (comment).
[3] See this comment: #4888 (comment).
[4] as evidenced by the Ubuntu 22.04 image software page.
[5] Observe that on pool definition YAML reference page, we can read:
i.e.
steps.pool
is not listed.