-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Release PR for .NET 8.0 doesn't update prebuilts/artifact versions correctly #3344
Comments
@ali-turan7 - assigned this to you as it's close to the issues you've already implemented. |
@ali-turan7 - The two relevant URLs referenced in the Versions.props files are uploaded by these release pipeline steps: source-build/eng/templates/stages/release.yml Lines 344 to 358 in d4f4973
So basically, you just need to resolve what the names of those two files are. The file names are defined here: source-build/eng/templates/stages/release.yml Lines 84 to 87 in d4f4973
You can see that they use wildcards for the versions. (Actually, the artifacts file name doesn't use a wildcard yet. That change is coming in #3451). It's also important to note that the So an easy way to determine the version number used in the file is to resolve the wildcards locally on the build agent with a bash script using - script: |
set -euo pipefail
resolvedSdkName=$(basename $(PIPELINE.WORKSPACE)/$(sdkArtifactFileName))
echo "##vso[task.setvariable variable=ResolvedSdkName]$resolvedSdkName" That script would set |
In addition to the updates that are needed to Currently, for both 6.0 and 7.0, only the To summarize:
|
I just realized that the updates needed for 7.0 that I mentioned above are captured in this issue: #3385. I think it probably makes sense to fix both of these together since they really are the same scenario, just impacting different versions in a different way, and they're in the same part of the code. |
Here's a sed command that can convert the wildcard pattern for the filename into a regular expression:
This simply replaces all instances of This regular expression can then be used to match the URL in the Versions.props file. Here's something I typed up which demonstrates what I'm thinking (completely untested): filenameRegex=$(echo "$(sourceBuiltArtifactsFileName)" | sed 's/\./\\./g; s/\*/.*/g')
actualFilename=$(basename <whatever>)
sed -i "s#\(<PrivateSourceBuiltArtifactsUrl>\).*$filenameRegex\(</PrivateSourceBuiltArtifactsUrl>\)#\1$actualFilename\2#" $versions_props_path |
In DryRun mode, the submit-sorce-build-release-pr script has been called. |
I ran another round of tests, and the outcomes are as follows: |
@ali-turan7 - It doesn't look like any of these show diffs in the output. |
It is because the diff comes after the commit. |
So how do you verify the file is actually updated with the expected content? |
I only verified if the parameters provided in the sed command were correct. I ran another round of tests, and the outcomes with diff are as follows: |
Ok, looks good. |
Context
The release pipeline opens a PR against the installer repo and updates VMR's
eng/Versions.props
file, specifically the part with prebuilt package versions.These properties changed between 7.0 and 8.0 and need to be changed for 8.0 too.
Goal
We need to have a look at the official VMR build associated with the release and find out the names of the artifacts from there and update the file using these names.
The text was updated successfully, but these errors were encountered: