11name : Release
22
33on :
4- workflow_dispatch :
5- inputs :
6- package :
7- description : " The published name of a single package to release"
8- type : choice
9- required : false
10- options :
11- - " all"
12- - " @nanoforge-dev/loader-client"
13- - " @nanoforge-dev/loader-server"
14- - " @nanoforge-dev/loader-website"
15- exclude :
16- description : " Comma separated list of packages to exclude from release (if not depended upon)"
17- required : false
18- type : string
19- dry_run :
20- description : Perform a dry run?
21- type : boolean
22- default : false
4+ pull_request :
5+ types :
6+ - closed
7+ branches :
8+ - main
239
2410permissions :
2511 contents : write
12+ id-token : write
2613
2714jobs :
28- npm-publish :
29- name : npm publish
15+ release :
16+ name : Release
3017 runs-on : ubuntu-latest
31- if : github.repository_owner == 'NanoForge-dev'
18+ if : github.repository_owner == 'NanoForge-dev' && github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/loader@')
3219 steps :
3320 - name : Checkout repository
3421 uses : actions/checkout@v6
@@ -37,11 +24,41 @@ jobs:
3724 uses : ./.github/actions/prepare
3825
3926 - name : Release packages
40- uses : ./node_modules/@nanoforge-dev/actions/dist /release-packages
27+ uses : ./node_modules/@nanoforge-dev/actions/actions /release-packages
4128 with :
42- package : ${{ inputs.package }}
43- exclude : ${{ inputs.exclude }}
44- dry : ${{ inputs.dry_run }}
29+ packages : " @nanoforge-dev/loader-client,@nanoforge-dev/loader-server,@nanoforge-dev/loader-website "
30+ tag-format : " {version} "
31+ latest : true
4532 env :
4633 NODE_AUTH_TOKEN : ${{ secrets.NPM_PUBLISH_TOKEN }}
4734 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
35+
36+ publish-docs :
37+ name : Publish docs
38+ runs-on : ubuntu-latest
39+ if : github.repository_owner == 'NanoForge-dev'
40+ needs : [release]
41+ steps :
42+ - name : Checkout repository
43+ uses : actions/checkout@v6
44+ with :
45+ fetch-depth : 0
46+ fetch-tags : true
47+
48+ - name : Checkout docs repository
49+ uses : actions/checkout@v6
50+ with :
51+ fetch-depth : 0
52+ fetch-tags : true
53+ path : docs-dist
54+ repository : nanoforge-dev/docs
55+ token : ${{ secrets.ACTIONS_KEY }}
56+
57+ - name : Prepare
58+ uses : ./.github/actions/prepare
59+
60+ - name : Publish docs
61+ uses : ./node_modules/@nanoforge-dev/actions/actions/synchronize-docs
62+ with :
63+ repository : loader
64+ category : cli
0 commit comments