Skip to content

Commit 971e3d9

Browse files
committed
ci: migrate to npm trusted publishing (#168)
1 parent 61628bd commit 971e3d9

1 file changed

Lines changed: 49 additions & 20 deletions

File tree

.github/workflows/main.yml

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,28 @@ on:
88
branches:
99
- main
1010
- test-*
11-
tags:
12-
- v*
13-
- wasi-threads-v*
1411
pull_request:
1512
paths-ignore:
1613
- '**/*.md'
1714
- '**/docs/**'
1815
workflow_dispatch:
16+
inputs:
17+
release_independent_package:
18+
description: 'Release independent package'
19+
required: true
20+
default: 'none'
21+
type: choice
22+
options:
23+
- 'none'
24+
- 'main'
25+
- 'wasi-threads'
26+
- 'ts-transform-macro'
27+
- 'rollup-plugin-emscripten-esm-library'
28+
- 'ts-transform-emscripten-esm-library'
29+
30+
permissions:
31+
id-token: write
32+
contents: write
1933

2034
env:
2135
WASI_VERSION: '27'
@@ -79,8 +93,6 @@ jobs:
7993
with:
8094
node-version: ${{ matrix.target == 'wasm64-unknown-emscripten' && '24.5.0' || env.NODE_VERSION }}
8195
registry-url: 'https://registry.npmjs.org'
82-
env:
83-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
8496

8597
- name: NPM Install
8698
shell: bash
@@ -143,8 +155,8 @@ jobs:
143155
npm run test:wasm32 -w packages/test
144156
145157
release:
146-
name: Release
147-
if: ${{ startsWith(github.event.ref, 'refs/tags/v') }}
158+
name: Release main packages
159+
if: ${{ github.event_name == 'workflow_dispatch' && inputs.release_independent_package == 'main' }}
148160
needs: build
149161
runs-on: ubuntu-latest
150162

@@ -169,9 +181,9 @@ jobs:
169181
with:
170182
node-version: ${{ env.NODE_VERSION }}
171183
registry-url: 'https://registry.npmjs.org'
172-
env:
173-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
174-
184+
185+
- name: Update npm
186+
run: npm install -g npm@latest
175187
- name: NPM Install
176188
shell: bash
177189
run: |
@@ -186,22 +198,31 @@ jobs:
186198
run: |
187199
node ./script/release.js
188200
npm publish --ignore-scripts -w packages/runtime -w packages/node -w packages/emnapi -w packages/core
201+
202+
- name: Get version
203+
id: pkg
204+
run: echo "version=$(node -p \"require('./packages/emnapi/package.json').version\")" >> $GITHUB_OUTPUT
205+
206+
- name: Create tag
207+
run: |
208+
git tag v${{ steps.pkg.outputs.version }}
209+
git push origin v${{ steps.pkg.outputs.version }}
189210
190211
- name: Create release
191212
uses: softprops/action-gh-release@v1
192213
env:
193214
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
194215
with:
195-
tag_name: ${{ github.ref_name }}
196-
name: ${{ github.ref_name }}
216+
tag_name: v${{ steps.pkg.outputs.version }}
217+
name: v${{ steps.pkg.outputs.version }}
197218
draft: true
198219
prerelease: false
199220
generate_release_notes: true
200221
files: ./script/emnapi.zip
201222

202-
release-wasi-threads:
203-
name: Release
204-
if: ${{ startsWith(github.event.ref, 'refs/tags/wasi-threads-v') }}
223+
release-independent-package:
224+
name: Release independent package
225+
if: ${{ github.event_name == 'workflow_dispatch' && inputs.release_independent_package && inputs.release_independent_package != 'none' && inputs.release_independent_package != 'main' }}
205226
needs: build
206227
runs-on: ubuntu-latest
207228

@@ -211,9 +232,8 @@ jobs:
211232
with:
212233
node-version: ${{ env.NODE_VERSION }}
213234
registry-url: 'https://registry.npmjs.org'
214-
env:
215-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
216-
235+
- name: Update npm
236+
run: npm install -g npm@latest
217237
- name: NPM Install
218238
shell: bash
219239
run: |
@@ -222,7 +242,16 @@ jobs:
222242
223243
- name: NPM Build
224244
shell: bash
225-
run: npm run build -w packages/wasi-threads
245+
run: npm run build -w packages/${{ inputs.release_independent_package }}
226246

227247
- name: Publish
228-
run: npm publish --ignore-scripts -w packages/wasi-threads
248+
run: npm publish --ignore-scripts -w packages/${{ inputs.release_independent_package }}
249+
250+
- name: Get version
251+
id: pkg
252+
run: echo "version=$(node -p \"require('./packages/${{ inputs.release_independent_package }}/package.json').version\")" >> $GITHUB_OUTPUT
253+
254+
- name: Create tag
255+
run: |
256+
git tag ${{ inputs.release_independent_package }}-v${{ steps.pkg.outputs.version }}
257+
git push origin ${{ inputs.release_independent_package }}-v${{ steps.pkg.outputs.version }}

0 commit comments

Comments
 (0)