From f962a5a85d9c67556d0d93902792d1e4ee3f8351 Mon Sep 17 00:00:00 2001 From: Bjorn Pijnacker Date: Fri, 19 Sep 2025 23:04:50 +0200 Subject: [PATCH] ci: semantic-release --- .gitea/workflows/release.yml | 30 ++++++++++++++++++++++++++++++ .releaserc.json | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 .gitea/workflows/release.yml create mode 100644 .releaserc.json diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..1f7ba55 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -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 diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 0000000..a073c78 --- /dev/null +++ b/.releaserc.json @@ -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" + ] + } + ] +} \ No newline at end of file