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

ansible: promote release assets from staging r2 bucket #3620

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

flakey5
Copy link
Member

@flakey5 flakey5 commented Jan 28, 2024

Note: nodejs/node#51394 should land before this does

Reference #3602

cc @targos @MoLow @ovflowd

@flakey5
Copy link
Member Author

flakey5 commented May 6, 2024

Rebased to latest as nodejs/node#51394 has landed

Comment on lines +53 to +55
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
Copy link
Member

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?

Copy link
Member Author

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

Copy link
Member

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.

Copy link
Member Author

@flakey5 flakey5 May 15, 2024

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?

Copy link
Member

@targos targos May 16, 2024

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).

Copy link
Member Author

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?

Copy link
Member Author

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

Copy link
Member Author

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.

Copy link
Member

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

Copy link
Member

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.

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.

None yet

4 participants