From 2646a8b07fcc2cf7cf384724f622eb0c27f9166c Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Thu, 27 Jul 2023 11:24:49 -0400 Subject: Release: migrate release process to release-it *Authors* - Checking and updating authors has been migrated to a custom script in the repo *Changelog* - changelogplease is no longer maintained - generate changelog in markdown for GitHub releases - generate changelog in HTML for blog posts - generate contributors list in HTML for blog posts *dist* - clone dist repo, copy files, and commit/push - commit tag with dist files on main branch; remove dist files from main branch after release *cdn* - clone cdn repo, copy files, and commit/push - create versioned and unversioned copies in cdn/ - generate md5 sums and archives for Google and MSFT *build* - implement reproducible builds and verify release builds * uses the last modified date for the latest commit * See https://reproducible-builds.org/ - the verify workflow also ensures all files were properly published to the CDN and npm *docs* - the new release workflow is documented at build/release/README.md *misc* - now that we don't need the jquery-release script and now that we no longer need to build on Node 10, we can use ESM in all files in the build folder - move dist wrappers to "wrappers" folders for easy removal of all built files - limit certain workflows to the main repo (not forks) - version in package.json has been set to beta.1 so that the next release will be beta.2 - release-it added the `preReleaseBase` option and we now always set it to `1` in the npm script. This is a noop for stable releases. Fixes jquery/jquery-release#114 Closes gh-5512 --- .github/workflows/filestash.yml | 4 +++- .github/workflows/verify-release.yml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/verify-release.yml (limited to '.github') diff --git a/.github/workflows/filestash.yml b/.github/workflows/filestash.yml index fd55a64cf..7e306a6e5 100644 --- a/.github/workflows/filestash.yml +++ b/.github/workflows/filestash.yml @@ -10,11 +10,13 @@ permissions: jobs: update: + name: Update Filestash runs-on: ubuntu-latest + # skip on forks + if: ${{ github.repository == 'jquery/jquery' }} environment: filestash env: NODE_VERSION: 20.x - name: Update Filestash steps: - name: Checkout uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/.github/workflows/verify-release.yml b/.github/workflows/verify-release.yml new file mode 100644 index 000000000..89dbc7b65 --- /dev/null +++ b/.github/workflows/verify-release.yml @@ -0,0 +1,33 @@ +name: Reproducible Builds +on: + # On tags + push: + tags: + - '*' + # Or manually + workflow_dispatch: + inputs: + version: + description: 'Version to verify (>= 4.0.0-beta.2)' + required: false + +jobs: + run: + name: Verify release + runs-on: ubuntu-latest + # skip on forks + if: ${{ github.repository == 'jquery/jquery' }} + env: + NODE_VERSION: 20.x + steps: + - name: Checkout + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + with: + node-version: ${{ env.NODE_VERSION }} + + - run: npm run release:verify + env: + VERSION: ${{ github.event.inputs.version || github.ref_name }} -- cgit v1.2.3