From d8bf64ca56abe77faca588f52f7bcab704ba922e Mon Sep 17 00:00:00 2001 From: Lucas Dupont Date: Wed, 10 Sep 2025 09:12:01 +0000 Subject: [PATCH] ci: add release job --- .github/workflows/release.yaml | 39 ++++++++++++++++++++++++++++++++++ .m2/settings.xml | 11 ++++++++++ .releaserc.json | 22 +++++++++++++++++++ pom.xml | 7 ++++++ 4 files changed, 79 insertions(+) create mode 100644 .github/workflows/release.yaml create mode 100644 .m2/settings.xml create mode 100644 .releaserc.json diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..8cb8e86 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,39 @@ +name: Release + +on: + push: + branches: + - master + +permissions: + contents: write + issues: write + pull-requests: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: npm install semantic-release @semantic-release/exec @semantic-release/changelog @semantic-release/git --save-dev + + - name: Release with semantic-release + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + run: | + npx semantic-release \ No newline at end of file diff --git a/.m2/settings.xml b/.m2/settings.xml new file mode 100644 index 0000000..ce9c8dd --- /dev/null +++ b/.m2/settings.xml @@ -0,0 +1,11 @@ + + + + maven-releases + ${env.MAVEN_USERNAME} + ${env.MAVEN_PASSWORD} + + + \ No newline at end of file diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 0000000..9e570b0 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,22 @@ +{ + "branches": ["master"], + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + [ + "@semantic-release/exec", + { + "prepareCmd": "mvn versions:set -DnewVersion=${nextRelease.version} -DgenerateBackupPoms=false", + "publishCmd": "mvn clean deploy --settings .m2/settings.xml" + } + ], + [ + "@semantic-release/git", + { + "assets": ["pom.xml", "CHANGELOG.md"], + "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + } + ] + ] +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 45e2be4..19089c9 100644 --- a/pom.xml +++ b/pom.xml @@ -16,6 +16,13 @@ 3.5.5 + + + maven-releases + https://maven.tools.ldpt.fr/releases + + +