From 84c46508ec102a294e6a9217d37f84e6ad81add9 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 11:58:33 +1000 Subject: [PATCH 01/15] test repositories --- .../workflows/build-and-publish-develop.yml | 11 +++------ pom.xml | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index a091a76..12031c5 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -26,16 +26,10 @@ jobs: distribution: zulu java-version: 17 - name: Maven Publish - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - mvn -B deploy \ - -P homelab \ - --settings=${{ github.workspace }}/.mvn/settings.xml + mvn -B deploy build-docker: + if: false runs-on: ubuntu-latest strategy: fail-fast: false @@ -100,6 +94,7 @@ jobs: if-no-files-found: error retention-days: 1 merge-docker: + if: false runs-on: ubuntu-latest needs: - build-docker diff --git a/pom.xml b/pom.xml index 50527e4..48c605b 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,29 @@ https://github.com/3dwardch3ng/ec-config-server/issues + + + nexus-public + https://nexus.cluster.edward.sydney/repository/maven-public/ + + true + + + + + + + maven-release + Nexus Release Repository + https://nexus.cluster.edward.sydney/repository/maven-releases/ + + + maven-snapshots + Nexus Snapshots Repository + https://nexus.cluster.edward.sydney/repository/maven-snapshots/ + + + 17 17 From f791f55b65c515e8d97bff1701ec2959dc716adc Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:16:57 +1000 Subject: [PATCH 02/15] test maven-settings-action --- .../workflows/build-and-publish-develop.yml | 17 ++++++++++++++ pom.xml | 23 ------------------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 12031c5..9d874da 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -25,6 +25,23 @@ jobs: with: distribution: zulu java-version: 17 + - uses: s4u/maven-settings-action@v3.0.0 + with: + properties: '[ + {"altSnapshotDeploymentRepository", "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}"}, + {"altReleaseDeploymentRepository", "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}"} + ]' + servers: | + [{ + "id": "nexus-snapshot", + "username": ${env.NEXUS_USERNAME} + "password": ${env.NEXUS_PASSWORD} + }, + { + "id": "nexus-release", + "username": ${env.NEXUS_USERNAME} + "password": ${env.NEXUS_PASSWORD} + }] - name: Maven Publish run: | mvn -B deploy diff --git a/pom.xml b/pom.xml index 48c605b..50527e4 100644 --- a/pom.xml +++ b/pom.xml @@ -37,29 +37,6 @@ https://github.com/3dwardch3ng/ec-config-server/issues - - - nexus-public - https://nexus.cluster.edward.sydney/repository/maven-public/ - - true - - - - - - - maven-release - Nexus Release Repository - https://nexus.cluster.edward.sydney/repository/maven-releases/ - - - maven-snapshots - Nexus Snapshots Repository - https://nexus.cluster.edward.sydney/repository/maven-snapshots/ - - - 17 17 From 4ceb78a4bb5a2120bca921d53f6031ec27db0469 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:18:42 +1000 Subject: [PATCH 03/15] test maven-settings-action --- .github/workflows/build-and-publish-develop.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 9d874da..7341f53 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -26,6 +26,11 @@ jobs: distribution: zulu java-version: 17 - uses: s4u/maven-settings-action@v3.0.0 + env: + NEXUS_USERNAME: 'edward' + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} + RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} with: properties: '[ {"altSnapshotDeploymentRepository", "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}"}, @@ -34,13 +39,13 @@ jobs: servers: | [{ "id": "nexus-snapshot", - "username": ${env.NEXUS_USERNAME} - "password": ${env.NEXUS_PASSWORD} + "username": "${env.NEXUS_USERNAME}" + "password": "${env.NEXUS_PASSWORD}" }, { "id": "nexus-release", - "username": ${env.NEXUS_USERNAME} - "password": ${env.NEXUS_PASSWORD} + "username": "${env.NEXUS_USERNAME}" + "password": "${env.NEXUS_PASSWORD}" }] - name: Maven Publish run: | From 4af920639aa4bf56ae0c75fce02e70fe05923130 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:20:43 +1000 Subject: [PATCH 04/15] test maven-settings-action --- .github/workflows/build-and-publish-develop.yml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 7341f53..02c3a09 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -26,26 +26,21 @@ jobs: distribution: zulu java-version: 17 - uses: s4u/maven-settings-action@v3.0.0 - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} with: properties: '[ - {"altSnapshotDeploymentRepository", "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}"}, - {"altReleaseDeploymentRepository", "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}"} + {"altSnapshotDeploymentRepository", "nexus-snapshot::${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }}"}, + {"altReleaseDeploymentRepository", "nexus-release::${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }}"} ]' servers: | [{ "id": "nexus-snapshot", - "username": "${env.NEXUS_USERNAME}" - "password": "${env.NEXUS_PASSWORD}" + "username": 'edward' + "password": ${{ secrets.NEXUS_PASSWORD }} }, { "id": "nexus-release", - "username": "${env.NEXUS_USERNAME}" - "password": "${env.NEXUS_PASSWORD}" + "username": 'edward' + "password": ${{ secrets.NEXUS_PASSWORD }} }] - name: Maven Publish run: | From 90fac26816d3417e5a8d761781054ef7129705a5 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:21:36 +1000 Subject: [PATCH 05/15] test maven-settings-action --- .github/workflows/build-and-publish-develop.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 02c3a09..1135d2a 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -34,12 +34,12 @@ jobs: servers: | [{ "id": "nexus-snapshot", - "username": 'edward' + "username": "edward" "password": ${{ secrets.NEXUS_PASSWORD }} }, { "id": "nexus-release", - "username": 'edward' + "username": "edward" "password": ${{ secrets.NEXUS_PASSWORD }} }] - name: Maven Publish From d927b56f578de0842b9e6cf1f2ee8c63db211a1d Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:23:15 +1000 Subject: [PATCH 06/15] test maven-settings-action --- .github/workflows/build-and-publish-develop.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 1135d2a..4f03dfb 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -35,12 +35,12 @@ jobs: [{ "id": "nexus-snapshot", "username": "edward" - "password": ${{ secrets.NEXUS_PASSWORD }} + "password": "${{ secrets.NEXUS_PASSWORD }}" }, { "id": "nexus-release", "username": "edward" - "password": ${{ secrets.NEXUS_PASSWORD }} + "password": "${{ secrets.NEXUS_PASSWORD }}" }] - name: Maven Publish run: | From ea23c13d71b190ad8cd22677edf470b8f4175c19 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:35:42 +1000 Subject: [PATCH 07/15] test maven-settings-xml-action --- .../workflows/build-and-publish-develop.yml | 41 ++++++++++++++----- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 4f03dfb..41670ae 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -25,26 +25,45 @@ jobs: with: distribution: zulu java-version: 17 - - uses: s4u/maven-settings-action@v3.0.0 + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v22 + env: + NEXUS_USERNAME: 'edward' + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} + SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} + RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} with: - properties: '[ - {"altSnapshotDeploymentRepository", "nexus-snapshot::${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }}"}, - {"altReleaseDeploymentRepository", "nexus-release::${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }}"} - ]' - servers: | + profiles: > + [{ + "id": "homelab", + "properties": { + "altSnapshotDeploymentRepository": "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}", + "altReleaseDeploymentRepository": "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}" + } + }] + repositories: > + [{ + "id": "maven-public", + "url": "${env.MAVEN_PUBLIC_REPOSITORY_URL}", + "snapshots": { + "enabled": "true" + } + }] + servers: > [{ "id": "nexus-snapshot", - "username": "edward" - "password": "${{ secrets.NEXUS_PASSWORD }}" + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" }, { "id": "nexus-release", - "username": "edward" - "password": "${{ secrets.NEXUS_PASSWORD }}" + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" }] - name: Maven Publish run: | - mvn -B deploy + mvn -B deploy -P homelab build-docker: if: false runs-on: ubuntu-latest From 0a860d87bec6d438baa214e35d32cc690c4d1fee Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:37:15 +1000 Subject: [PATCH 08/15] test maven-settings-xml-action --- .github/workflows/build-and-publish-develop.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 41670ae..5c84b36 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -27,12 +27,6 @@ jobs: java-version: 17 - name: maven-settings-xml-action uses: whelk-io/maven-settings-xml-action@v22 - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} with: profiles: > [{ @@ -62,6 +56,12 @@ jobs: "password": "${env.NEXUS_PASSWORD}" }] - name: Maven Publish + env: + NEXUS_USERNAME: 'edward' + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} + SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} + RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | mvn -B deploy -P homelab build-docker: From 52dcde87352a886e5dd941e9c99455e56b0f8c4c Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:47:24 +1000 Subject: [PATCH 09/15] test develop pipeline --- .../workflows/build-and-publish-develop.yml | 84 ++++++++++++++++--- .mvn/settings.xml | 53 ------------ 2 files changed, 73 insertions(+), 64 deletions(-) delete mode 100644 .mvn/settings.xml diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 5c84b36..dc81320 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -22,9 +22,11 @@ jobs: with: fetch-depth: 0 - uses: actions/setup-java@v4.2.2 + if: ${{ hashFiles('**/pom.xml') }} with: - distribution: zulu java-version: 17 + distribution: zulu + cache: 'maven' - name: maven-settings-xml-action uses: whelk-io/maven-settings-xml-action@v22 with: @@ -78,19 +80,50 @@ jobs: with: fetch-depth: 0 - uses: actions/setup-java@v4.2.2 + if: ${{ hashFiles('**/pom.xml') }} with: - distribution: zulu java-version: 17 + distribution: zulu + cache: 'maven' + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v22 + with: + profiles: > + [{ + "id": "homelab", + "properties": { + "altSnapshotDeploymentRepository": "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}", + "altReleaseDeploymentRepository": "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}" + } + }] + repositories: > + [{ + "id": "maven-public", + "url": "${env.MAVEN_PUBLIC_REPOSITORY_URL}", + "snapshots": { + "enabled": "true" + } + }] + servers: > + [{ + "id": "nexus-snapshot", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }, + { + "id": "nexus-release", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }] - name: Maven Package env: NEXUS_USERNAME: 'edward' NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - mvn -B package \ - -P homelab \ - --settings=${{ github.workspace }}/.mvn/settings.xml + mvn -B package -P homelab - name: Prepare run: | platform=${{ matrix.platform }} @@ -130,27 +163,56 @@ jobs: if-no-files-found: error retention-days: 1 merge-docker: - if: false runs-on: ubuntu-latest needs: - build-docker steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - uses: actions/setup-java@v4.2.2 + if: ${{ hashFiles('**/pom.xml') }} with: - distribution: zulu java-version: 17 + distribution: zulu + cache: 'maven' + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v22 + with: + profiles: > + [{ + "id": "homelab", + "properties": { + "altSnapshotDeploymentRepository": "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}", + "altReleaseDeploymentRepository": "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}" + } + }] + repositories: > + [{ + "id": "maven-public", + "url": "${env.MAVEN_PUBLIC_REPOSITORY_URL}", + "snapshots": { + "enabled": "true" + } + }] + servers: > + [{ + "id": "nexus-snapshot", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }, + { + "id": "nexus-release", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }] - name: Extract Maven project version id: project-version env: NEXUS_USERNAME: 'edward' NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab --settings=${{ github.workspace }}/.mvn/settings.xml) + VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab) echo "version=$VERSION" >> $GITHUB_OUTPUT - name: Show extracted Maven project version run: echo ${{ steps.project-version.outputs.version }} diff --git a/.mvn/settings.xml b/.mvn/settings.xml deleted file mode 100644 index 03ef155..0000000 --- a/.mvn/settings.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - homelab - - nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL} - nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL} - - - - nexus-snapshot - Home Lab Nexus Snapshot - - false - - - true - always - warn - - ${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL} - default - - - nexus-release - Home Lab Nexus Release - - true - always - warn - - - false - - ${env.RELEASE_DEPLOYMENT_REPOSITORY_URL} - default - - - - - - - nexus-snapshot - ${env.NEXUS_USERNAME} - ${env.NEXUS_PASSWORD} - - - nexus-release - ${env.NEXUS_USERNAME} - ${env.NEXUS_PASSWORD} - - - \ No newline at end of file From 61c0d63950ff6e2ab3fdcf677a683e925304be5b Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:51:24 +1000 Subject: [PATCH 10/15] test develop pipeline --- .github/workflows/build-and-publish-develop.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index dc81320..41f462b 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -67,7 +67,6 @@ jobs: run: | mvn -B deploy -P homelab build-docker: - if: false runs-on: ubuntu-latest strategy: fail-fast: false From 829eb9cbee5c9cdcc0728c7063e10887c6e034fe Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 12:57:02 +1000 Subject: [PATCH 11/15] test global env vars --- .../workflows/build-and-publish-develop.yml | 23 +-- .../workflows/build-and-publish-release.yml | 148 +++++++++++++----- 2 files changed, 114 insertions(+), 57 deletions(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 41f462b..f968e66 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -7,6 +7,11 @@ on: - develop env: + NEXUS_USERNAME: 'edward' + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} + SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} + RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} REGISTRY_IMAGE: edeedeeed/ec-config-server jobs: @@ -58,12 +63,6 @@ jobs: "password": "${env.NEXUS_PASSWORD}" }] - name: Maven Publish - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | mvn -B deploy -P homelab build-docker: @@ -115,12 +114,6 @@ jobs: "password": "${env.NEXUS_PASSWORD}" }] - name: Maven Package - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | mvn -B package -P homelab - name: Prepare @@ -204,12 +197,6 @@ jobs: }] - name: Extract Maven project version id: project-version - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab) echo "version=$VERSION" >> $GITHUB_OUTPUT diff --git a/.github/workflows/build-and-publish-release.yml b/.github/workflows/build-and-publish-release.yml index 57308f4..dab06b0 100644 --- a/.github/workflows/build-and-publish-release.yml +++ b/.github/workflows/build-and-publish-release.yml @@ -7,6 +7,11 @@ on: - main env: + NEXUS_USERNAME: 'edward' + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_PUBLIC_REPOSITORY_URL: ${{ secrets.MAVEN_PUBLIC_REPOSITORY_URL }} + SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} + RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} REGISTRY_IMAGE: edeedeeed/ec-config-server jobs: @@ -22,46 +27,59 @@ jobs: with: fetch-depth: 0 - uses: actions/setup-java@v4.2.2 + if: ${{ hashFiles('**/pom.xml') }} with: - distribution: zulu java-version: 17 + distribution: zulu + cache: 'maven' + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v22 + with: + profiles: > + [{ + "id": "homelab", + "properties": { + "altSnapshotDeploymentRepository": "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}", + "altReleaseDeploymentRepository": "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}" + } + }] + repositories: > + [{ + "id": "maven-public", + "url": "${env.MAVEN_PUBLIC_REPOSITORY_URL}", + "snapshots": { + "enabled": "true" + } + }] + servers: > + [{ + "id": "nexus-snapshot", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }, + { + "id": "nexus-release", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }] - name: Config Git run: | git config --global user.email "edward@cheng.sydney" git config --global user.name "3dwardch3ng" git config --global core.autocrlf input - name: Start release - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | mvn -X gitflow:release-start -B -DpushRemote=true -DallowSnapshots=true \ - -P homelab \ - --settings=${{ github.workspace }}/.mvn/settings.xml + -P homelab - name: Maven Publish - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - mvn -B deploy \ - -P homelab \ - --settings=${{ github.workspace }}/.mvn/settings.xml + mvn -B deploy -P homelab - name: Finish release env: GITHUB_ACTOR: 3dwardch3ng GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - mvn -X gitflow:release-finish -B -DpushRemote=true -DallowSnapshots=true \ - -P homelab \ - --settings=${{ github.workspace }}/.mvn/settings.xml + mvn -X gitflow:release-finish -B -DpushRemote=true -DallowSnapshots=true -P homelab build-docker: if: false runs-on: ubuntu-latest @@ -76,19 +94,44 @@ jobs: with: fetch-depth: 0 - uses: actions/setup-java@v4.2.2 + if: ${{ hashFiles('**/pom.xml') }} with: - distribution: zulu java-version: 17 + distribution: zulu + cache: 'maven' + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v22 + with: + profiles: > + [{ + "id": "homelab", + "properties": { + "altSnapshotDeploymentRepository": "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}", + "altReleaseDeploymentRepository": "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}" + } + }] + repositories: > + [{ + "id": "maven-public", + "url": "${env.MAVEN_PUBLIC_REPOSITORY_URL}", + "snapshots": { + "enabled": "true" + } + }] + servers: > + [{ + "id": "nexus-snapshot", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }, + { + "id": "nexus-release", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }] - name: Maven Package - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - mvn -B package \ - -P homelab \ - --settings=${{ github.workspace }}/.mvn/settings.xml + mvn -B package -P homelab - name: Prepare run: | platform=${{ matrix.platform }} @@ -137,18 +180,45 @@ jobs: with: fetch-depth: 0 - uses: actions/setup-java@v4.2.2 + if: ${{ hashFiles('**/pom.xml') }} with: - distribution: zulu java-version: 17 + distribution: zulu + cache: 'maven' + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v22 + with: + profiles: > + [{ + "id": "homelab", + "properties": { + "altSnapshotDeploymentRepository": "nexus-snapshot::${env.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL}", + "altReleaseDeploymentRepository": "nexus-release::${env.RELEASE_DEPLOYMENT_REPOSITORY_URL}" + } + }] + repositories: > + [{ + "id": "maven-public", + "url": "${env.MAVEN_PUBLIC_REPOSITORY_URL}", + "snapshots": { + "enabled": "true" + } + }] + servers: > + [{ + "id": "nexus-snapshot", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }, + { + "id": "nexus-release", + "username": "${env.NEXUS_USERNAME}", + "password": "${env.NEXUS_PASSWORD}" + }] - name: Extract Maven project version id: project-version - env: - NEXUS_USERNAME: 'edward' - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - SNAPSHOT_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.SNAPSHOT_DEPLOYMENT_REPOSITORY_URL }} - RELEASE_DEPLOYMENT_REPOSITORY_URL: ${{ secrets.RELEASE_DEPLOYMENT_REPOSITORY_URL }} run: | - VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab --settings=${{ github.workspace }}/.mvn/settings.xml) + VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab) echo "version=$VERSION" >> $GITHUB_OUTPUT - name: Show extracted Maven project version run: echo ${{ steps.project-version.outputs.version }} From 3bf878b5e3b91cbaee47be0d4593ae522e412dd3 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 13:02:23 +1000 Subject: [PATCH 12/15] test project version extraction --- .github/workflows/build-and-publish-develop.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index f968e66..74e0585 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -198,7 +198,8 @@ jobs: - name: Extract Maven project version id: project-version run: | - VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab) + VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab ) + echo $VERSION echo "version=$VERSION" >> $GITHUB_OUTPUT - name: Show extracted Maven project version run: echo ${{ steps.project-version.outputs.version }} From 27765c41456db1cd91427a21c2be4e84539274d6 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 13:06:01 +1000 Subject: [PATCH 13/15] test project version extraction --- .github/workflows/build-and-publish-develop.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index 74e0585..aa9a526 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -159,6 +159,9 @@ jobs: needs: - build-docker steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: actions/setup-java@v4.2.2 if: ${{ hashFiles('**/pom.xml') }} with: From 18a662888cb21d3d63839d7265535a8b3ff4bf17 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 13:06:19 +1000 Subject: [PATCH 14/15] test project version extraction --- .github/workflows/build-and-publish-develop.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-and-publish-develop.yml b/.github/workflows/build-and-publish-develop.yml index aa9a526..8f4c565 100644 --- a/.github/workflows/build-and-publish-develop.yml +++ b/.github/workflows/build-and-publish-develop.yml @@ -202,7 +202,6 @@ jobs: id: project-version run: | VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout -P homelab ) - echo $VERSION echo "version=$VERSION" >> $GITHUB_OUTPUT - name: Show extracted Maven project version run: echo ${{ steps.project-version.outputs.version }} From 360ebbab0db6660f47e454b3cfcf15a1ee743d54 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Fri, 30 Aug 2024 13:07:54 +1000 Subject: [PATCH 15/15] test release pipeline --- .github/workflows/build-and-publish-release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-and-publish-release.yml b/.github/workflows/build-and-publish-release.yml index dab06b0..257b401 100644 --- a/.github/workflows/build-and-publish-release.yml +++ b/.github/workflows/build-and-publish-release.yml @@ -81,7 +81,6 @@ jobs: run: | mvn -X gitflow:release-finish -B -DpushRemote=true -DallowSnapshots=true -P homelab build-docker: - if: false runs-on: ubuntu-latest strategy: fail-fast: false @@ -171,7 +170,6 @@ jobs: if-no-files-found: error retention-days: 1 merge-docker: - if: false runs-on: ubuntu-latest needs: - build-docker @@ -243,6 +241,7 @@ jobs: type=raw,value={{branch}}-{{date 'YYYYMMDD'}} type=raw,value={{branch}}-${{ steps.project-version.outputs.version }} type=raw,value=${{ steps.project-version.outputs.version }} + type=raw,value=latest - name: Login to Docker Hub uses: docker/login-action@v3 with: