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
ansible: promote release assets from staging r2 bucket #3620
base: main
Are you sure you want to change the base?
Conversation
Rebased to latest as nodejs/node#51394 has landed |
relativedir=${dstdir/$dist_rootdir/"$site/"} | ||
aws s3 cp ${dstdir}/index.json $staging_bucket/$relativedir/index.json --endpoint-url=$cloudflare_endpoint --profile $cloudflare_profile | ||
aws s3 cp ${dstdir}/index.tab $staging_bucket/$relativedir/index.tab --endpoint-url=$cloudflare_endpoint --profile $cloudflare_profile |
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.
Shouldn't we also copy the two shasum files?
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.
The shasum files are already put into the dist-prod bucket by the release script, https://github.com/nodejs/node/blob/a923fed8743cf787add2a22def0fdbb88d736a42/tools/release.sh#L20C1-L20C18
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.
_resha.sh is not only called by releasers. Automation for nightly, test, rc, builds also calls it.
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.
Ah I see, should I remove the upload of the .asc and .sig files from the release script then?
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.
Maybe? I'm not entirely sure about the order in which things happen during a release.
I noticed yesterday when I released v22.2.0 that SHASUMS256.txt
wasn't uploaded to R2 (only the .asc
and .sig
files were).
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.
In that case maybe we just copy over the SHASUM256.txt, @MoLow would you have any input on this?
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.
From what it looks like in the release guide doc (https://github.com/nodejs/node/blob/main/doc/contributing/releases.md#15-promote-and-sign-the-release-builds) the CI run is done first. This uploads the binaries, docs, and SHASUM256.txt
to the dist-staging
bucket.
When promoting, the SHASUM256.txt.asc
and SHASUM256.txt.sig
files are created and uploaded. Imo the release script is fine as it is with uploading directly to the dist-prod
bucket, skipping dist-staging
. The .asc and .sig files are still uploaded to the DO server as well ofc
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.
Changed it so that it will copy the SHASUM256.txt into the staging bucket now. The later call that syncs the version in the staging bucket -> dist bucket recursively copies the entire directory, so no change should be needed there.
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.
CI doesn't upload Shasums. For releases it happens when the release script is executed
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.
SHASUM256.txt
is generated on the www machine by the promotion script (specifically _resha.sh
, which also regenerates index.json
and index.tab
). For releases promotion is manually triggered by the releaser. For nightly builds there's a 30 min cron job that runs promote_nightly.sh
:
- "*/30 * * * * dist /home/staging/tools/promote/promote_nightly.sh nodejs" |
The signed artifacts (SHASUM256.txt.asc
and SHASUM256.txt.sig
) are only generated for releases as part of the release script. These are generated on the releaser's machine and uploaded as part of that script.
Note: nodejs/node#51394 should land before this does
Reference #3602
cc @targos @MoLow @ovflowd