Skip to content

Commit 577ff29

Browse files
committed
ci: add new release workflow
1 parent f1073af commit 577ff29

32 files changed

Lines changed: 2082 additions & 2140 deletions
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Alpha Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
package:
7+
description: "The published name of a single package to release"
8+
type: choice
9+
required: true
10+
options:
11+
- "@nanoforge-dev/loader-client"
12+
- "@nanoforge-dev/loader-server"
13+
- "@nanoforge-dev/loader-website"
14+
dry_run:
15+
description: Perform a dry run?
16+
type: boolean
17+
default: false
18+
19+
permissions:
20+
contents: write
21+
id-token: write
22+
23+
jobs:
24+
alpha-release:
25+
name: Alpha release
26+
runs-on: ubuntu-latest
27+
if: github.repository_owner == 'NanoForge-dev'
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v6
31+
32+
- name: Prepare
33+
uses: ./.github/actions/prepare
34+
35+
- name: Release alpha
36+
uses: ./node_modules/@nanoforge-dev/actions/actions/release-dev
37+
with:
38+
package: ${{ inputs.package }}
39+
tag: alpha
40+
dry: ${{ inputs.dry_run }}
41+
env:
42+
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
43+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/pre-release.yml

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,10 @@ name: Pre-Release
33
on:
44
workflow_dispatch:
55
inputs:
6-
package:
7-
description: "The published name of a single package to release"
8-
type: choice
9-
required: true
10-
options:
11-
- "@nanoforge-dev/loader-client"
12-
- "@nanoforge-dev/loader-server"
13-
- "@nanoforge-dev/loader-website"
146
version:
15-
description: "New version of the package (leave empty for auto generated version)"
7+
description: New version for the packages
168
type: string
17-
required: false
9+
required: true
1810
dry_run:
1911
description: Perform a dry run?
2012
type: boolean
@@ -39,11 +31,13 @@ jobs:
3931
- name: Prepare
4032
uses: ./.github/actions/prepare
4133

42-
- name: Release packages
43-
uses: ./node_modules/@nanoforge-dev/actions/dist/create-release-pr
34+
- name: Create release PR
35+
uses: ./node_modules/@nanoforge-dev/actions/actions/create-packages-release-pr
4436
with:
45-
package: ${{ inputs.package }}
37+
packages: "@nanoforge-dev/loader-client,@nanoforge-dev/loader-server,@nanoforge-dev/loader-website"
4638
version: ${{ inputs.version }}
39+
branch-format: "releases/loader@{version}"
40+
commit-format: "chore: release @nanoforge-dev/loader@{version}"
4741
dry: ${{ inputs.dry_run }}
4842
env:
4943
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release-tag.yml

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

.github/workflows/release.yml

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,21 @@
11
name: Release
22

33
on:
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

2410
permissions:
2511
contents: write
12+
id-token: write
2613

2714
jobs:
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

.husky/commit-msg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pnpm --no-install commitlint --edit "$1"
1+
pnpm commitlint --edit "$1"

.husky/pre-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pnpm --no-install lint-staged
1+
pnpm lint-staged

apps/client/.cliff-jumperrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"name": "loader-client",
44
"org": "nanoforge-dev",
55
"packagePath": "apps/client",
6+
"tagTemplate": "{{new-version}}",
67
"identifierBase": false
78
}

apps/client/cliff.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ commit_parsers = [
6969
]
7070
filter_commits = true
7171
protect_breaking_commits = true
72-
tag_pattern = "@nanoforge-dev/loader-client@[0-9]*"
72+
tag_pattern = "^[0-9]+"
7373
ignore_tags = ""
7474
topo_order = false
7575
sort_commits = "newest"

apps/server/.cliff-jumperrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"name": "loader-server",
44
"org": "nanoforge-dev",
55
"packagePath": "apps/server",
6+
"tagTemplate": "{{new-version}}",
67
"identifierBase": false
78
}

apps/server/cliff.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ commit_parsers = [
6969
]
7070
filter_commits = true
7171
protect_breaking_commits = true
72-
tag_pattern = "@nanoforge-dev/loader-server@[0-9]*"
72+
tag_pattern = "^[0-9]+"
7373
ignore_tags = ""
7474
topo_order = false
7575
sort_commits = "newest"

0 commit comments

Comments
 (0)