ci: semantic-release

This commit is contained in:
2025-09-19 23:04:50 +02:00
parent 6b6c23e4e6
commit f962a5a85d
2 changed files with 66 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
name: Release
on: [workflow_dispatch]
permissions:
contents: read # for checkout
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "lts/*"
- name: Setup semantic-release packages
run: npm install -D @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/exec @semantic-release/git @semantic-release/github
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release

36
.releaserc.json Normal file
View File

@@ -0,0 +1,36 @@
{
"branches": [
"main"
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/exec",
{
"prepareCmd": "jq '.version = \"${nextRelease.version}\"' src/info.json > src/info.json.tmp && mv src/info.json.tmp src/info.json"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "cd src && zip -r ../prometheus-exporter_${nextRelease.version}.zip ."
}
],
[
"@semantic-release/git",
{
"assets": [
"src/info.json"
],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
],
"@semantic-release/github",
{
"assets": [
"prometheus-exporter_*.zip"
]
}
]
}