From 96b301962381a26f3cf51321d80c155b552f7cdc Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 09:15:57 +0100 Subject: [PATCH 1/7] Don't manually install s2i (s2i-build action does it) Signed-off-by: Jonathan Dowland --- .github/workflows/push-quarkus-to-quay.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/push-quarkus-to-quay.yml b/.github/workflows/push-quarkus-to-quay.yml index eb93d4a..0ef6d32 100644 --- a/.github/workflows/push-quarkus-to-quay.yml +++ b/.github/workflows/push-quarkus-to-quay.yml @@ -5,7 +5,6 @@ on: branches: - main env: - S2I_URI: https://github.com/openshift/source-to-image/releases/download/v1.3.1/source-to-image-v1.3.1-a5a77147-linux-amd64.tar.gz IMAGE_NAME: jlink-quarkus-test-image TAGS: v1 ${{ github.sha }} @@ -25,15 +24,6 @@ jobs: distribution: 'adopt' - run: git submodule init - run: git submodule update --remote - - name: install s2i binary - run: | - echo ===== Installing s2i from ${{ env.S2I_URL }} ===== - mkdir /tmp/s2i/ && cd /tmp/s2i/ - wget ${{ env.S2I_URI }} - tar xvf source-to-image*.gz - sudo mv s2i /usr/bin - which s2i - s2i version - name: Setup and Build Quarkus id: build_image_quarkus uses: redhat-actions/s2i-build@v2 From a8648f7a00ae63b02b33a20e4f6f34233ef00d8f Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 09:17:01 +0100 Subject: [PATCH 2/7] remove GHA steps for git submodules There are no registered git submodules for this repository (yet) Signed-off-by: Jonathan Dowland --- .github/workflows/push-quarkus-to-quay.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/push-quarkus-to-quay.yml b/.github/workflows/push-quarkus-to-quay.yml index 0ef6d32..97d6caf 100644 --- a/.github/workflows/push-quarkus-to-quay.yml +++ b/.github/workflows/push-quarkus-to-quay.yml @@ -22,8 +22,6 @@ jobs: with: java-version: '11' distribution: 'adopt' - - run: git submodule init - - run: git submodule update --remote - name: Setup and Build Quarkus id: build_image_quarkus uses: redhat-actions/s2i-build@v2 From f12b7f3f478016397b7a6500301878e0bb5f2d87 Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 09:20:07 +0100 Subject: [PATCH 3/7] Don't install java in quarkus GHA action We don't need it in the runner, if we're using S2I Signed-off-by: Jonathan Dowland --- .github/workflows/push-quarkus-to-quay.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/push-quarkus-to-quay.yml b/.github/workflows/push-quarkus-to-quay.yml index 97d6caf..32dbb30 100644 --- a/.github/workflows/push-quarkus-to-quay.yml +++ b/.github/workflows/push-quarkus-to-quay.yml @@ -18,10 +18,6 @@ jobs: ref: ${{ inputs.checkout-ref }} submodules: true fetch-depth: 0 - - uses: actions/setup-java@v2 - with: - java-version: '11' - distribution: 'adopt' - name: Setup and Build Quarkus id: build_image_quarkus uses: redhat-actions/s2i-build@v2 From c01304b3e498f92d644d1113e0193f548b2ce4ab Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 09:20:27 +0100 Subject: [PATCH 4/7] switch to ubi9/openjdk-17 for builds Signed-off-by: Jonathan Dowland --- .github/workflows/push-quarkus-to-quay.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-quarkus-to-quay.yml b/.github/workflows/push-quarkus-to-quay.yml index 32dbb30..085fe97 100644 --- a/.github/workflows/push-quarkus-to-quay.yml +++ b/.github/workflows/push-quarkus-to-quay.yml @@ -24,7 +24,7 @@ jobs: with: path_context: 'quarkus-quickstart/getting-started' # TODO: Need Jmods image - builder_image: 'registry.access.redhat.com/openjdk/openjdk-11-rhel7' + builder_image: 'registry.access.redhat.com/ubi9/openjdk-17' image: ${{ env.IMAGE_NAME }} tags: ${{ env.TAGS }} - name: Push To Quay Action From 78b2b5d1ebc4e7361afb46d17a008b55f74febb7 Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 09:29:42 +0100 Subject: [PATCH 5/7] Split Quarkus GHA into two Separate out the build and push jobs so that we can trigger the build stage in Pull Requests but not the Push. Signed-off-by: Jonathan Dowland --- .github/workflows/build-quarkus.yml | 28 +++++++++++++++++++++ .github/workflows/push-quarkus-to-quay.yml | 29 ++++++---------------- 2 files changed, 35 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/build-quarkus.yml diff --git a/.github/workflows/build-quarkus.yml b/.github/workflows/build-quarkus.yml new file mode 100644 index 0000000..6b3115d --- /dev/null +++ b/.github/workflows/build-quarkus.yml @@ -0,0 +1,28 @@ +name: Build Quarkus Image +on: + pull_request: + push: + branches: + - main +env: + IMAGE_NAME: jlink-quarkus-test-image + TAGS: v1 ${{ github.sha }} +jobs: + build-image: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + repository: ${{ inputs.checkout-repo }} + ref: ${{ inputs.checkout-ref }} + submodules: true + fetch-depth: 0 + - name: Setup and Build Quarkus + id: build_image_quarkus + uses: redhat-actions/s2i-build@v2 + with: + path_context: 'quarkus-quickstart/getting-started' + # TODO: Need Jmods image + builder_image: 'registry.access.redhat.com/ubi9/openjdk-17' + image: ${{ env.IMAGE_NAME }} + tags: ${{ env.TAGS }} diff --git a/.github/workflows/push-quarkus-to-quay.yml b/.github/workflows/push-quarkus-to-quay.yml index 085fe97..f174fd3 100644 --- a/.github/workflows/push-quarkus-to-quay.yml +++ b/.github/workflows/push-quarkus-to-quay.yml @@ -1,32 +1,17 @@ name: Build and Push Quarkus Image to Quay - on: push: branches: - main env: - IMAGE_NAME: jlink-quarkus-test-image - TAGS: v1 ${{ github.sha }} - + LANG: en_US.UTF-8 + IMAGE: ubi9-openjdk-17 jobs: - build-image: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - repository: ${{ inputs.checkout-repo }} - ref: ${{ inputs.checkout-ref }} - submodules: true - fetch-depth: 0 - - name: Setup and Build Quarkus - id: build_image_quarkus - uses: redhat-actions/s2i-build@v2 - with: - path_context: 'quarkus-quickstart/getting-started' - # TODO: Need Jmods image - builder_image: 'registry.access.redhat.com/ubi9/openjdk-17' - image: ${{ env.IMAGE_NAME }} - tags: ${{ env.TAGS }} + call-build: + uses: ./.github/workflows/build-quarkus.yml + with: + image: ubi9-openjdk-17 + push-image: - name: Push To Quay Action uses: redhat-actions/push-to-registry@v2 with: From ad9b33e059378a3fd53882b719dcafdf29c208fb Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 09:42:50 +0100 Subject: [PATCH 6/7] Adjust quarkus .s2i/bin for UBI9/JDK17 * Don't define JAVA_HOME, inherit the value from the host. * Hard-code 17 instead of 11 * Reference JAVA_HOME in INSTALL_BASE Signed-off-by: Jonathan Dowland --- quarkus-quickstart/getting-started/.s2i/bin/assemble | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/quarkus-quickstart/getting-started/.s2i/bin/assemble b/quarkus-quickstart/getting-started/.s2i/bin/assemble index 5f0eae7..36983aa 100644 --- a/quarkus-quickstart/getting-started/.s2i/bin/assemble +++ b/quarkus-quickstart/getting-started/.s2i/bin/assemble @@ -21,7 +21,6 @@ maven_s2i_build shopt -s globstar jarfile="$project/deployments/quarkus-run.jar" libdir="$project/deployments/lib" -JAVA_HOME="/lib/jvm/java-11-openjdk" test -f "$jarfile" test -d "$libdir" @@ -30,7 +29,7 @@ test -d "$libdir" mkdir dependencies cp $libdir/**/*.jar dependencies # Calculate dependencies -$JAVA_HOME/bin/jdeps --module-path dependencies --ignore-missing-deps --multi-release 11 -R -s \ +$JAVA_HOME/bin/jdeps --module-path dependencies --ignore-missing-deps --multi-release 17 -R -s \ "$jarfile" \ "$libdir"/**/*.jar \ > deps.txt @@ -60,7 +59,7 @@ $JAVA_HOME/bin/jlink --output quarkus-jre \ rm *.txt echo "Repacking jre" -INSTALL_BASE="/lib/jvm/java-11-openjdk" +INSTALL_BASE="$JAVA_HOME" JDK_IMAGE="quarkus-jre" echo -n "Replacing shared libraries from JDK image '$JDK_IMAGE' with shared libraries from '$INSTALL_BASE'... " From dc0a36373484ec002f7bac198a4a95d223e5b991 Mon Sep 17 00:00:00 2001 From: Jonathan Dowland Date: Fri, 4 Aug 2023 11:55:31 +0100 Subject: [PATCH 7/7] Switch to a development builder image URI Signed-off-by: Jonathan Dowland --- .github/workflows/build-quarkus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-quarkus.yml b/.github/workflows/build-quarkus.yml index 6b3115d..6d36a3e 100644 --- a/.github/workflows/build-quarkus.yml +++ b/.github/workflows/build-quarkus.yml @@ -22,7 +22,7 @@ jobs: uses: redhat-actions/s2i-build@v2 with: path_context: 'quarkus-quickstart/getting-started' - # TODO: Need Jmods image - builder_image: 'registry.access.redhat.com/ubi9/openjdk-17' + # This is ubi9/openjdk-17 built from jdk-dev branch (+jmods) + builder_image: 'quay.io/jdowland/ubi9-openjdk-17:jdk-dev' image: ${{ env.IMAGE_NAME }} tags: ${{ env.TAGS }}