Skip to content

Commit 17c8518

Browse files
committed
Document distro upgrade process
1 parent 6bd71d2 commit 17c8518

File tree

1 file changed

+47
-6
lines changed

1 file changed

+47
-6
lines changed

Documentation/ci-platform-coverage-guidelines.md

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,51 @@ matrix](https://github.com/dotnet/sdk/blob/main/eng/pipelines/templates/stages/v
4444
1. Alpine - Latest version (amd64)
4545
1. AlmaLinux - Oldest version (targets lowest glibc version) (amd64)
4646

47-
When updating the distro versions in the CI matrix as new versions are released
48-
and older versions reach EOL:
47+
## Updating Distro Versions in the VMR
4948

50-
1. Update `main` to the newer version one to two months prior to the GA/EOL date.
51-
This is done to flush out any issues and to avoid destabilizing the servicing
52-
branches.
53-
1. At the GA/EOL date, update the servicing branches.
49+
There are two scenarios when updating distro versions in the CI pipeline:
50+
51+
### Case 1: OS Leg in VMR Produces N-1 artifact (Previous Version Support)
52+
53+
When updating a distro that produces an N-1 (previous version) artifact in the VMR:
54+
55+
1. **Update VMR pipeline variables:**
56+
- Create "Previous" versions of existing distro variables by adding `Previous` suffix to preserve the old values
57+
- Update current distro variables to new version values
58+
59+
1. **Update VMR pipeline:**
60+
- Add container configuration for previous version
61+
- For previous legs, update the distro parameters to use the previous variables you created in Step 1.
62+
63+
1. **Update SBRP Cleanup pipeline:**
64+
- If applicable, update the default artifact name in the source-build-reference-packages clean up pipeline - [example](https://github.com/dotnet/source-build-reference-packages/pull/1284)
65+
66+
1. **File a tracking issue** to remove the previous variables and update the artifact RID used in `prep-source-build.sh` - [example](https://github.com/dotnet/source-build/issues/5238)
67+
68+
1. **Submit and test your changes:**
69+
- Open a pull request with all changes - [example](https://github.com/dotnet/dotnet/pull/1093)
70+
- Queue a full build of the VMR to validate the changes
71+
72+
1. **Update release pipelines:**
73+
- Update the artifact name for relevant .NET version in the source-build release and re-bootstrap pipeline - [example](https://dev.azure.com/dnceng/internal/_git/dotnet-release/commit/c9be53307205765ebae48c18d00ef6260e596817?path=/eng/pipeline/source-build-release/steps/re-bootstrap.yml&version=GBmain&line=90&lineEnd=91&lineStartColumn=1&lineEndColumn=1&type=2&lineStyle=plain&_a=files).
74+
- The release validation will fail until the next source-build release. File an issue to update the artifacts used for the release validation after the next release.
75+
76+
1. **Complete the transition:**
77+
- Queue the re-bootstrap pipeline after the next successful CI build of the VMR
78+
- In the resulting PR, make the changes described in your tracking issue (Step 4)
79+
- Merge the resulting PR and close the tracking issue
80+
81+
82+
### Case 2: OS Leg in VMR Produces Regular Artifact (Standard Update)
83+
84+
For distros not used in n-1 legs:
85+
86+
1. **Update VMR pipeline variables:**
87+
- Update the distro-specific variables to new version values
88+
89+
1. **Update SBRP Cleanup pipeline:**
90+
- If applicable, update default artifact name in the source-build-reference-packages clean up pipeline - [example](https://github.com/dotnet/source-build-reference-packages/pull/1284)
91+
92+
2. **Submit changes:**
93+
- Open a pull request with all the above changes
94+
- Queue a full build of the VMR to validate the changes

0 commit comments

Comments
 (0)