Skip to content

Merge branch 'develop' into release/1.7.0 #454

Merge branch 'develop' into release/1.7.0

Merge branch 'develop' into release/1.7.0 #454

Workflow file for this run

name: Build
on:
push:
pull_request_target:
types: [labeled]
env:
JAVA_VERSION: 25
jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
permissions:
id-token: write # Required for the attestations step
attestations: write # Required for the attestations step
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: ${{ env.JAVA_VERSION }}
cache: 'maven'
- name: Ensure to use tagged version
if: startsWith(github.ref, 'refs/tags/')
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
- name: Build and Test
run: mvn -B verify --no-transfer-progress
- name: Attest
if: startsWith(github.ref, 'refs/tags/')
uses: actions/attest-build-provenance@v3
with:
subject-path: |
target/*.jar
target/*.pom
- uses: actions/upload-artifact@v5
with:
name: artifacts
path: target/*.jar
deploy-central:
name: Deploy to Maven Central
runs-on: ubuntu-latest
permissions: {}
needs: [build]
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: ${{ env.JAVA_VERSION }}
cache: 'maven'
server-id: central
server-username: MAVEN_CENTRAL_USERNAME
server-password: MAVEN_CENTRAL_PASSWORD
- name: Ensure to use tagged version
if: startsWith(github.ref, 'refs/tags/')
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
- name: Verify project version is -SNAPSHOT
if: startsWith(github.ref, 'refs/tags/') == false
run: |
PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
test "${PROJECT_VERSION: -9}" = "-SNAPSHOT"
- name: Deploy to Maven Central
run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
deploy-github:
name: Deploy to GitHub Packages
runs-on: ubuntu-latest
permissions:
packages: write # Required for the deploy to GitHub Packages step
needs: [build]
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'temurin'
cache: 'maven'
- name: Ensure to use tagged version
if: startsWith(github.ref, 'refs/tags/')
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
- name: Verify project version is -SNAPSHOT
if: startsWith(github.ref, 'refs/tags/') == false
run: |
PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
test "${PROJECT_VERSION: -9}" = "-SNAPSHOT"
- name: Deploy to GitHub Packages
run: mvn deploy -B -DskipTests -Psign,deploy-github --no-transfer-progress
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # Required for the release step
needs: [deploy-central, deploy-github]
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Create Release
uses: softprops/action-gh-release@v2
with:
prerelease: true
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
generate_release_notes: true
body: |
For a list of all notable changes, read the [changelog](/CHANGELOG.md).