feat(plugins): add maven-release-plugin version 3.1.1 #29

Merged
jorge.bornhausen merged 3 commits from release-plugin into main 2024-12-19 16:29:29 +00:00
4 changed files with 134 additions and 3 deletions

View file

@ -1,13 +1,18 @@
name: Build, test and publish the Quarkus libraries
name: Build
on:
push:
branches:
- "main"
paths-ignore:
- '.gitattributes'
- '.gitignore'
- '.github/renovate.json5'
- '.github/project.yaml'
- 'docs/**'
- 'README.md'
workflow_dispatch:
pull_request:
env:
COMMON_MAVEN_OPTS: "-e -B --fae"
@ -46,6 +51,9 @@ jobs:
- name: Make maven wrapper executable
run: chmod +x mvnw
- name: Download dependencies
run: ./mvnw $COMMON_MAVEN_OPTS quarkus:go-offline
- name: Build and run tests
run: ./mvnw $COMMON_MAVEN_OPTS verify
@ -56,6 +64,6 @@ jobs:
SONAR_HOST_URL: ${{ vars.SONAR_HOST_URL }}
run: ./mvnw $COMMON_MAVEN_OPTS org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=quarkus-commons -Dsonar.projectName='quarkus-commons' -Dsonar.coverage.jacoco.xmlReportPaths=../**/target/jacoco-report/jacoco.xml
- name: Upload libs to Kvant maven registry
- name: Publish jars
if: github.ref == 'refs/heads/main'
run: ./mvnw $COMMON_MAVEN_OPTS deploy -Dmaven.test.skip=true -Dmaven.javadoc.skip=true

70
.github/workflows/release.yaml vendored Normal file
View file

@ -0,0 +1,70 @@
name: Release the current version
on:
push:
branches:
- "main"
paths:
- '.github/project.yaml'
env:
COMMON_MAVEN_OPTS: "-e -B --fae"
jobs:
release:
name: Execute the release
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: https://github.com/actions/checkout@v4
- name: Retrieve project metadata
uses: https://github.com/radcortez/project-metadata-action@master
id: metadata
with:
metadata-file-path: '.github/project.yaml'
local-file: true
- name: Validate current version
if: contains(steps.metadata.outputs.current-version, 'SNAPSHOT')
run: |
echo '::error::Cannot release a SNAPSHOT version.'
exit 1
- name: Validate next version
if: contains(steps.metadata.outputs.next-version, 'SNAPSHOT') == 'false'
run: |
echo '::error::Next development version should be a SNAPSHOT version.'
exit 1
- name: Configure SSH and Git
env:
SSH_DIR: /root/.ssh
MAVEN_RELEASE_SSH_KEY: ${{ secrets.MAVEN_RELEASE_SSH_KEY }}
run: |
mkdir -p ${SSH_DIR}/
touch ${SSH_DIR}/known_hosts
ssh-keyscan -t rsa -p 2222 git-ssh.kvant.cloud >> ${SSH_DIR}/known_hosts
echo "${MAVEN_RELEASE_SSH_KEY}" | base64 -d >> ${SSH_DIR}/id_rsa
chmod 600 ${SSH_DIR}/id_rsa
git config --global user.name 'maven_release_technical_account'
git config --global user.email 'maven-release-bot@phoenix-technologies.ch'
git config --global commit.gpgsign true
git config --global gpg.format ssh
git config --global user.signingkey ${SSH_DIR}/id_rsa
- name: Set up JDK 21
uses: https://github.com/actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Make maven wrapper executable
run: chmod +x mvnw
- name: Download dependencies
run: ./mvnw $COMMON_MAVEN_OPTS quarkus:go-offline
- name: Prepare release
run: ./mvnw $COMMON_MAVEN_OPTS release:prepare

View file

@ -0,0 +1,33 @@
name: Validate release versions
on:
pull_request:
paths:
- '.github/project.yaml'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: https://github.com/actions/checkout@v4
- name: Retrieve project metadata
uses: https://github.com/radcortez/project-metadata-action@master
id: metadata
with:
metadata-file-path: '.github/project.yaml'
local-file: true
- name: Validate current version
if: contains(steps.metadata.outputs.current-version, 'SNAPSHOT')
run: |
echo '::error::Cannot release a SNAPSHOT version.'
exit 1
- name: Validate next version
if: contains(steps.metadata.outputs.next-version, 'SNAPSHOT') == false
run: |
echo '::error::Next development version should be a SNAPSHOT version.'
exit 1

20
pom.xml
View file

@ -29,6 +29,7 @@
<palantir-java-format.version>2.50.0</palantir-java-format.version>
<jacoco-plugin.version>0.8.12</jacoco-plugin.version> <!-- Match with version from Quarkus BOM -->
<jandex-plugin.version>3.2.3</jandex-plugin.version>
<release-plugin.version>3.1.1</release-plugin.version>
<!-- Build properties -->
<maven.compiler.release>21</maven.compiler.release>
@ -66,6 +67,13 @@
</dependencies>
</dependencyManagement>
<scm>
<connection>scm:git:ssh://git@git-ssh.kvant.cloud:2222/phoenix/quarkus-commons.git</connection>
<developerConnection>scm:git:ssh://git@git-ssh.kvant.cloud:2222/phoenix/quarkus-commons.git</developerConnection>
<url>https://git.kvant.cloud/phoenix/quarkus-commons.git</url>
<tag>HEAD</tag>
</scm>
<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
@ -178,6 +186,18 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${release-plugin.version}</version>
<configuration>
<tagNameFormat>@{project.version}</tagNameFormat>
<checkModificationExcludes>mvnw</checkModificationExcludes>
<scmReleaseCommitComment>chore: release @{releaseLabel}</scmReleaseCommitComment>
<scmDevelopmentCommitComment>chore: prepare for next development iteration [skip ci]</scmDevelopmentCommitComment>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
</project>