Skip to content

Commit 2647ceb

Browse files
committed
build: add semantic-release
1 parent a404623 commit 2647ceb

5 files changed

Lines changed: 1601 additions & 49 deletions

File tree

.github/workflows/main.yml

Lines changed: 32 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,41 @@
1-
name: Releases
2-
1+
name: Release
32
on:
43
push:
5-
branches: [ master, develop ]
4+
branches:
5+
- master
6+
- pre
7+
8+
permissions:
9+
contents: read # for checkout
10+
611
jobs:
7-
build:
12+
release:
13+
name: Release
814
runs-on: ubuntu-latest
9-
if: "!contains(github.event.head_commit.message, '[skip ci]')"
15+
permissions:
16+
contents: write # to be able to publish a GitHub release
17+
issues: write # to be able to comment on released issues
18+
pull-requests: write # to be able to comment on released pull requests
19+
id-token: write # to enable use of OIDC for npm provenance
1020
steps:
11-
- uses: actions/checkout@v2
12-
- uses: actions/setup-node@v1
13-
with:
14-
node-version: '18.x'
15-
- run: npm i -g pnpm
16-
- run: pnpm install --frozen-lockfile
17-
- run: pnpm test
18-
- run: pnpm build
19-
- run: yarn pack --filename=release.tgz
20-
- name: Publish on NPM
21-
if: "!contains(github.event.head_commit.message, '[skip publish]')"
22-
uses: JS-DevTools/npm-publish@v1
21+
- name: Checkout
22+
uses: actions/checkout@v3
2323
with:
24-
package: build/package.json
25-
token: '${{ secrets.NPM_TOKEN }}'
26-
- uses: Klemensas/action-autotag@stable
27-
if: "!contains(github.event.head_commit.message, '[skip publish]')"
28-
id: update_tag
24+
fetch-depth: 0
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v3
2927
with:
30-
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
31-
tag_prefix: 'v'
32-
- name: Create Release
33-
if: "!contains(github.event.head_commit.message, '[skip publish]') && steps.update_tag.outputs.tagname"
34-
uses: actions/create-release@v1
35-
id: create_release
28+
node-version: '18'
29+
- name: Install PNPM
30+
run: npm i -g pnpm
31+
- name: Install dependencies
32+
run: pnpm install --frozen-lockfile
33+
- name: Build Package
34+
run: pnpm build
35+
# - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
36+
# run: npm audit signatures
37+
- name: Semantic Release
3638
env:
3739
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38-
with:
39-
tag_name: ${{ steps.update_tag.outputs.tagname }}
40-
release_name: Release ${{ steps.update_tag.outputs.tagname }}
41-
- name: Upload Release Asset
42-
if: "!contains(github.event.head_commit.message, '[skip publish]') && steps.update_tag.outputs.tagname"
43-
id: upload-release-asset
44-
uses: actions/upload-release-asset@v1
45-
env:
46-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47-
with:
48-
upload_url: ${{ steps.create_release.outputs.upload_url }}
49-
asset_path: ./release.tgz
50-
asset_name: release.tgz
51-
asset_content_type: application/tgz
40+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
41+
run: npx semantic-release

.github/workflows/pull_requests.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ name: Pull Requests
22

33
on:
44
pull_request:
5-
branches: [ master, develop ]
5+
branches: [master, develop, pre]
66
jobs:
77
build:
88
runs-on: ubuntu-latest
9-
if: "!contains(github.event.head_commit.message, '[skip ci]')"
109
steps:
1110
- uses: actions/checkout@v2
1211
- uses: actions/setup-node@v1

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "massarg",
3-
"version": "1.0.7-pre.1",
3+
"version": "0.0.0-development",
44
"description": "Flexible, powerful, and simple command/argument parser for CLI applications",
55
"keywords": [
66
"shell",
@@ -19,12 +19,16 @@
1919
"dev": "tsc --watch",
2020
"cmd": "ts-node src/sample.ts",
2121
"test": "jest",
22-
"docgen": "typedoc --out docs src/**/*.ts --exclude src/sample.ts --plugin typedoc-plugin-zod --theme default"
22+
"docgen": "typedoc --out docs src/**/*.ts --exclude src/sample.ts --plugin typedoc-plugin-zod --theme default",
23+
"semantic-release": "semantic-release"
2324
},
2425
"devDependencies": {
26+
"@semantic-release/changelog": "^6.0.3",
27+
"@semantic-release/git": "^10.0.1",
2528
"@types/jest": "^29.5.8",
2629
"@types/node": "^20.9.2",
2730
"jest": "^29.7.0",
31+
"semantic-release": "^22.0.8",
2832
"ts-jest": "^29.1.1",
2933
"ts-node": "^10.9.1",
3034
"typedoc": "^0.25.3",

0 commit comments

Comments
 (0)