Skip to content

Commit d781934

Browse files
committed
ci: refactor release workflow
1 parent 85937a8 commit d781934

3 files changed

Lines changed: 54 additions & 55 deletions

File tree

.github/workflows/release.yaml

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,53 @@
1-
name: Release
1+
name: release
2+
23
on:
34
push:
45
branches:
56
- main
67
- dev
7-
pull_request:
8-
types:
9-
- closed
108

119
permissions:
12-
contents: write
13-
issues: write
14-
pull-requests: write
10+
contents: read
11+
id-token: write
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
1516

1617
jobs:
1718
release:
18-
name: Release
1919
runs-on: ubuntu-latest
20+
environment: semantic-release
2021
steps:
2122
- name: Checkout
2223
uses: actions/checkout@v4
2324
with:
2425
fetch-depth: 0
2526

26-
- name: Install pnpm
27-
uses: pnpm/action-setup@v2
27+
- name: Setup pnpm
28+
uses: pnpm/action-setup@v4
2829
with:
29-
version: 8
30+
version: 10.24.0
3031
run_install: false
3132

3233
- name: Setup Node.js
3334
uses: actions/setup-node@v4
3435
with:
35-
node-version: "20"
36-
cache: "pnpm"
36+
node-version: 22.21.1
37+
cache: pnpm
3738

38-
- name: Get pnpm store directory
39-
shell: bash
40-
run: |
41-
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
39+
- name: Install dependencies
40+
run: pnpm install --frozen-lockfile
4241

43-
- name: Setup pnpm cache
44-
uses: actions/cache@v3
42+
- uses: actions/create-github-app-token@v2
43+
id: app-token
4544
with:
46-
path: ${{ env.STORE_PATH }}
47-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
48-
restore-keys: |
49-
${{ runner.os }}-pnpm-store-
50-
51-
- name: Install dependencies
52-
run: pnpm install
45+
app-id: ${{ secrets.APP_ID }}
46+
private-key: ${{ secrets.APP_PRIVATE_KEY }}
5347

54-
- name: Release
48+
- name: Semantic Release
49+
uses: cycjimmy/semantic-release-action@v4
50+
id: semantic
5551
env:
56-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57-
NPM_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
58-
run: pnpm release
52+
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
53+
SEMANTIC_RELEASE_DEBUG: true

.releaserc.json

Lines changed: 0 additions & 25 deletions
This file was deleted.

release.config.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @type {import('semantic-release').GlobalConfig}
3+
*/
4+
const config = {
5+
branches: ["main", { name: "dev", channel: "dev", prerelease: "dev" }],
6+
plugins: [
7+
"@semantic-release/commit-analyzer",
8+
"@semantic-release/release-notes-generator",
9+
["@semantic-release/changelog", { changelogFile: "CHANGELOG.md" }],
10+
[
11+
"@semantic-release/exec",
12+
{
13+
prepareCmd: "pnpm install --no-frozen-lockfile",
14+
},
15+
],
16+
["@semantic-release/npm", { npmPublish: true, provenance: true }],
17+
[
18+
"@semantic-release/git",
19+
{
20+
assets: ["CHANGELOG.md", "package.json"],
21+
message:
22+
"chore: release ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
23+
},
24+
],
25+
"@semantic-release/github",
26+
],
27+
};
28+
29+
export default config;

0 commit comments

Comments
 (0)