From 6ee80d7c8e8c12d7a256f7d27ab7fa0c62093a1e Mon Sep 17 00:00:00 2001 From: abrs Date: Tue, 5 May 2026 11:36:31 +0200 Subject: [PATCH 1/6] Automation: Unify configuration into config.ini --- config.ini | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 config.ini diff --git a/config.ini b/config.ini new file mode 100644 index 00000000..5570b6ed --- /dev/null +++ b/config.ini @@ -0,0 +1,20 @@ +# ========================================================== +# PIPELINE CONFIGURATION (GitHub Actions / Local) +# ========================================================== +# This file is used by the CI/CD pipelines to set up the +# Java and Maven build environment, as well as Docker builds. +# ========================================================== + +[build] +# Java build version (required, default is 8) +java_build_version = 11 + +# Maven version (required, default is 3.9.9) +maven_version = 3.9.9 + +# Additional flags for maven (optional, e.g., -ntp -B -DskipTests) +maven_extra_flags = + +# ========================================================== +# DOCKER BUILD CONFIGURATION +# ========================================================== \ No newline at end of file From 0d6c390a13407ab9ea9a1ccf0e0f186dfd3fac88 Mon Sep 17 00:00:00 2001 From: abrs Date: Tue, 5 May 2026 11:36:33 +0200 Subject: [PATCH 2/6] Automation: Add or update workflow 'README.md' --- .github/workflows/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/README.md diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 00000000..1657e79a --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,19 @@ +# Workflows + +### Maven Tests +- Definition + - run `mvn clean install` +- Trigger + - on pull request / push to branch + +### Maven Release +- Definition + - run `mvn clean install` + - run `mvn release:prepare` + - run `mvn release:perform` + - push the release on gcs ua-ops-artifacts/airship-maven-artifacts +- Trigger + - on merge to Main/Master + - workflow_dispatch (manual trigger) + +📖 For full documentation on how these workflows and configuration files work, please refer to the [urbanairship/java-env repository](https://github.com/urbanairship/java-env#github-actions-and-workflows). \ No newline at end of file From 0d2c532b1fe30da929dbf985c0d151d838f895cd Mon Sep 17 00:00:00 2001 From: abrs Date: Tue, 5 May 2026 11:36:35 +0200 Subject: [PATCH 3/6] Automation: Add or update workflow 'maven-release.yaml' --- .github/workflows/maven-release.yaml | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/maven-release.yaml diff --git a/.github/workflows/maven-release.yaml b/.github/workflows/maven-release.yaml new file mode 100644 index 00000000..e08751e0 --- /dev/null +++ b/.github/workflows/maven-release.yaml @@ -0,0 +1,29 @@ +name: Perform Maven Release + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +on: + push: + branches: + - master + paths: + - 'pom.xml' + - '**/src/**' + - '**/pom.xml' + workflow_dispatch: + +jobs: + maven-release: + name: Maven Release + runs-on: [ self-hosted, ubuntu ] + + steps: + - id: release + uses: urbanairship/java-env/actions/airship-maven-release@master + with: + dry-run: false + java-build-sa-key: ${{ secrets.JAVA_BUILD_SA_KEY }} + gh-token: ${{ secrets.JAVA_BUILD_GH_TOKEN }} + additionalCommentPrefix: "[skip ci]" From 5aafef6a139228dac1d3bae503b3b3dceab529e4 Mon Sep 17 00:00:00 2001 From: abrs Date: Tue, 5 May 2026 11:36:38 +0200 Subject: [PATCH 4/6] Automation: Add or update workflow 'maven-tests.yaml' --- .github/workflows/maven-tests.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/maven-tests.yaml diff --git a/.github/workflows/maven-tests.yaml b/.github/workflows/maven-tests.yaml new file mode 100644 index 00000000..255a2c22 --- /dev/null +++ b/.github/workflows/maven-tests.yaml @@ -0,0 +1,27 @@ +name: Maven Tests + +run-name: Maven Tests on branch ${{ github.ref_name }} + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + branches: + - master + workflow_dispatch: + +jobs: + build: + runs-on: [self-hosted, ubuntu] + steps: + - name: Set up Airship Java Environment + uses: urbanairship/java-env/actions/setup-airship-java-env@master + with: + java-build-sa-key: ${{ secrets.JAVA_BUILD_SA_KEY }} + gh-token: ${{ secrets.JAVA_BUILD_GH_TOKEN }} + + - name: Build with Maven + shell: bash + run: mvn clean install -e -T 1C ${{ env.MAVEN_EXTRA_FLAGS }} From a31df8ead0f1526514b620ff9b3327c729f81494 Mon Sep 17 00:00:00 2001 From: abrs Date: Tue, 5 May 2026 11:37:39 +0200 Subject: [PATCH 5/6] Clean up config.ini by removing Docker section Removed commented Docker build configuration section. --- config.ini | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config.ini b/config.ini index 5570b6ed..bc60cbb9 100644 --- a/config.ini +++ b/config.ini @@ -14,7 +14,3 @@ maven_version = 3.9.9 # Additional flags for maven (optional, e.g., -ntp -B -DskipTests) maven_extra_flags = - -# ========================================================== -# DOCKER BUILD CONFIGURATION -# ========================================================== \ No newline at end of file From d4717d73eb1b187df1b3e082c003901ca314d047 Mon Sep 17 00:00:00 2001 From: abrs Date: Tue, 5 May 2026 15:04:35 +0200 Subject: [PATCH 6/6] Add GPG passphrase to Maven release workflow Add additional build arguments for GPG passphrase. --- .github/workflows/maven-release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/maven-release.yaml b/.github/workflows/maven-release.yaml index e08751e0..3e67c90a 100644 --- a/.github/workflows/maven-release.yaml +++ b/.github/workflows/maven-release.yaml @@ -27,3 +27,4 @@ jobs: java-build-sa-key: ${{ secrets.JAVA_BUILD_SA_KEY }} gh-token: ${{ secrets.JAVA_BUILD_GH_TOKEN }} additionalCommentPrefix: "[skip ci]" + additionalBuildArgs: "-Dgpg.passphrase=${{ secrets.MAVEN_GPG_PASSPHRASE }} -Dlocal.gpg.passphrase=${{ secrets.MAVEN_GPG_PASSPHRASE }}"