chore(github): add release workflow on v3* tags

This commit is contained in:
Benjamin Canac
2025-04-23 15:31:30 +02:00
parent 664a8c7524
commit 4a969a8b9e
3 changed files with 73 additions and 0 deletions

54
.github/workflows/release.yml vendored Normal file
View File

@@ -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 }}

View File

@@ -3,6 +3,9 @@
"commitMessage": "chore(release): v${version}", "commitMessage": "chore(release): v${version}",
"tagName": "v${version}" "tagName": "v${version}"
}, },
"npm": {
"publish": false
},
"github": { "github": {
"release": true, "release": true,
"releaseName": "v${version}", "releaseName": "v${version}",

16
scripts/release.sh Executable file
View File

@@ -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