From 4a969a8b9e9e6cfc3830a868e617d86876054d8e Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Wed, 23 Apr 2025 15:31:30 +0200 Subject: [PATCH] chore(github): add release workflow on `v3*` tags --- .github/workflows/release.yml | 54 +++++++++++++++++++++++++++++++++++ .release-it.json | 3 ++ scripts/release.sh | 16 +++++++++++ 3 files changed, 73 insertions(+) create mode 100644 .github/workflows/release.yml create mode 100755 scripts/release.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..5263df0b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,54 @@ +name: release + +on: + push: + tags: + - 'v3*' + +jobs: + publish: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] # macos-latest, windows-latest + node: [22] + + env: + NUXT_GITHUB_TOKEN: ${{ secrets.NUXT_GITHUB_TOKEN }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Install node + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Prepare + run: pnpm run dev:prepare + + - name: Lint + run: pnpm run lint + + - name: Typecheck + run: pnpm run typecheck + + - name: Test + run: pnpm run test run + + - name: Test (vue) + run: pnpm run test:vue run + + - name: Publish + run: ./scripts/release.sh + env: + NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} diff --git a/.release-it.json b/.release-it.json index d13b383a..fc7a2637 100644 --- a/.release-it.json +++ b/.release-it.json @@ -3,6 +3,9 @@ "commitMessage": "chore(release): v${version}", "tagName": "v${version}" }, + "npm": { + "publish": false + }, "github": { "release": true, "releaseName": "v${version}", diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 00000000..88f30efd --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Restore all git changes +git restore -s@ -SW -- . + +# Update token +if [[ ! -z ${NODE_AUTH_TOKEN} ]] ; then + echo "//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}" >> ~/.npmrc + echo "registry=https://registry.npmjs.org/" >> ~/.npmrc + echo "always-auth=true" >> ~/.npmrc + npm whoami +fi + +# Release package +echo "Publishing @nuxt/ui" +npm publish --access public