Skip to content

Upload dist assets to a staging R2 bucket before a release is promoted #3602

Description

@flakey5

For anyone unfamiliar with what we're trying to do with the R2 migration, see #3461

Due to some issues we've experienced with syncing release assets from the DO server to the dist-prod R2 bucket, we want to look into having a dist-staging R2 bucket that will have the assets before the release is promoted. What we think the issue is is that the DO server simply doesn't have enough resources to handle all of the traffic that comes after a release and handle uploading assets to the prod R2 bucket at the same time. By uploading to a staging bucket before the release is promoted (and thus before cache is purged), we should be able to solve this issue.

Note this will not replace uploading the release assets to the DO server. The assets will still be uploaded there like usual.

TODO:

  • Create the dist-staging bucket on Node.js's Cloudflare account
  • Upload the release binaries and docs to the dist-staging bucket as soon as they're uploaded to the DO server
  • Update release tooling in nodejs/node to allow for uploading signed shasums to the staging bucket
  • Update release promotion script to copy dist assets from dist-staging to dist-prod instead of from the dist folder in the DO server.

cc @MoLow @ovflowd

Activity

  1. targos commented on Jan 3, 2024

    @targos
    Member

    Upload the release binaries and docs to the dist-staging bucket as soon as they're uploaded to the DO server

    I suggest doing this between the "upload to DO" and "touch .done file" steps in the existing scripts (present in nodejs/node's Makefile and vcbuild.bat files). We can do the upload from the DO server via SSH.

  2. targos commented on Jan 3, 2024

    @targos
    Member

    I created the dist-staging bucket.

  3. targos commented on Jan 3, 2024

    @targos
    Member

    Give each releaser their own S3 api token to write to the staging bucket (unless we want this step to happen from the DO server as well)

    It will be easier to do it from the DO server, as the releaser already has access to it and already copies the shasums to it.

  4. MoLow commented on Jan 4, 2024

    @MoLow
    Member

    Sounds like a good way to go. see #3501 - I already started implementing the part of uploading the release artifacts to R2

  5. flakey5 commented on Jan 6, 2024

    @flakey5
    MemberAuthor

    Pr opened here in the node repo to copy both release assets and the signed shasum files to the staging R2 bucket: nodejs/node#51394

  6. trivikr commented on Jul 3, 2024

    @trivikr
    Member

    PR to promote release assets from staging r2 bucket is merged in #3620

    What are the next steps for this issue?

  7. flakey5 commented on Jul 3, 2024

    @flakey5
    MemberAuthor

    Nightly build was promoted from the looks of it!

    https://r2.nodejs.org/download/nightly/v23.0.0-nightly2024070366b76e24e2/
    https://nodejs.org/download/nightly/v23.0.0-nightly2024070366b76e24e2/

    There is a weird thing with the dates going on in the directory listing, but should be an easy fix. Will take a look later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions