ci: add release job

This commit is contained in:
Lucas Dupont
2025-09-10 09:12:01 +00:00
parent 83c1faf0d8
commit d8bf64ca56
4 changed files with 79 additions and 0 deletions

39
.github/workflows/release.yaml vendored Normal file
View File

@@ -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

11
.m2/settings.xml Normal file
View File

@@ -0,0 +1,11 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>maven-releases</id>
<username>${env.MAVEN_USERNAME}</username>
<password>${env.MAVEN_PASSWORD}</password>
</server>
</servers>
</settings>

22
.releaserc.json Normal file
View File

@@ -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}"
}
]
]
}

View File

@@ -16,6 +16,13 @@
<spring.boot.version>3.5.5</spring.boot.version>
</properties>
<distributionManagement>
<repository>
<id>maven-releases</id>
<url>https://maven.tools.ldpt.fr/releases</url>
</repository>
</distributionManagement>
<dependencyManagement>
<dependencies>
<dependency>