Skip to content

Commit a9c39fd

Browse files
authored
chore(ci): add semantic-release workflow
1 parent 5a648ac commit a9c39fd

File tree

3 files changed

+78
-1
lines changed

3 files changed

+78
-1
lines changed

.github/workflows/release.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ main ]
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
- name: Use Node.js
14+
uses: actions/setup-node@v3
15+
with:
16+
node-version: lts/*
17+
- run: npm install --no-package-lock
18+
name: Install dependencies
19+
- run: npm run build
20+
name: Run NPM Build
21+
- run: npm run lint
22+
name: Run NPM Lint
23+
- run: |
24+
rm -rf package-lock.json node_modules
25+
# Remove dev and peer dependencies from node_modules
26+
npm prune --omit=dev --omit=peer --no-package-lock
27+
name: Remove dev dependencies and appium peer dependencies
28+
- run: npm shrinkwrap --omit=dev --omit=peer
29+
name: Create shrinkwrap
30+
- run: npm install --only=dev --no-package-lock
31+
name: Install dev dependencies for the release
32+
- run: npx semantic-release
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
36+
name: Release

.releaserc

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"plugins": [
3+
["@semantic-release/commit-analyzer", {
4+
"preset": "angular",
5+
"releaseRules": [
6+
{ "type": "chore", "release": "patch" }
7+
]
8+
}],
9+
["@semantic-release/release-notes-generator", {
10+
"preset": "conventionalcommits",
11+
"presetConfig": {
12+
"types": [
13+
{ "type": "feat", "section": "Features" },
14+
{ "type": "fix", "section": "Bug Fixes" },
15+
{ "type": "perf", "section": "Performance Improvements" },
16+
{ "type": "revert", "section": "Reverts" },
17+
{ "type": "chore", "section": "Miscellaneous Chores" },
18+
{ "type": "refactor", "section": "Code Refactoring" },
19+
{ "type": "docs", "section": "Documentation", "hidden": true },
20+
{ "type": "style", "section": "Styles", "hidden": true },
21+
{ "type": "test", "section": "Tests", "hidden": true },
22+
{ "type": "build", "section": "Build System", "hidden": true },
23+
{ "type": "ci", "section": "Continuous Integration", "hidden": true }
24+
]
25+
}
26+
}],
27+
["@semantic-release/changelog", {
28+
"changelogFile": "CHANGELOG.md"
29+
}],
30+
"@semantic-release/npm",
31+
["@semantic-release/git", {
32+
"assets": ["docs", "package.json", "CHANGELOG.md"],
33+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
34+
}],
35+
"@semantic-release/github"
36+
]
37+
}

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,13 @@
4747
"@appium/eslint-config-appium-ts": "^1.0.3",
4848
"@appium/tsconfig": "^0.3.5",
4949
"@appium/types": "^0.25.2",
50-
"@types/node": "^22.14.0",
5150
"@eslint/js": "^9.23.0",
51+
"@semantic-release/changelog": "^6.0.3",
52+
"@semantic-release/git": "^10.0.1",
53+
"@types/node": "^22.14.0",
54+
"conventional-changelog-conventionalcommits": "^8.0.0",
5255
"eslint": "^9.23.0",
56+
"semantic-release": "^24.2.3",
5357
"typescript": "^5.8.2",
5458
"typescript-eslint": "^8.28.0"
5559
}

0 commit comments

Comments
 (0)