From 840fdb5da82b0ef64bb8c50568af0c86a2404d02 Mon Sep 17 00:00:00 2001 From: Ming Wang Date: Mon, 2 Oct 2023 10:26:01 -0400 Subject: [PATCH] push to ghcr --- .github/workflows/ci.yaml | 72 +++++++++++++++++++++++++++++++ .github/workflows/cryostat-IT.yml | 13 ++++-- 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 26e22c94..6ac35dee 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,6 +27,10 @@ jobs: with: step: restore - run: mvn -B -U clean verify + - uses: actions/upload-artifact@v3 + with: + name: cryostat-core + path: /home/runner/work/cryostat-core/cryostat-core/target/cryostat-core-2.24.0-SNAPSHOT.jar - uses: skjolber/maven-cache-github-action@v1 with: step: save @@ -40,3 +44,71 @@ jobs: with: build-arch: ${{ matrix.arch }} skip-itests: ${{ matrix.arch != 'amd64' }} + + push-to-ghcr: + runs-on: ubuntu-latest + needs: [cryostat-test] + strategy: + matrix: + arch: [amd64, arm64] + outputs: + amd64_image: ${{ steps.amd64_image.outputs.image }} + arm64_image: ${{ steps.arm64_image.outputs.image }} + permissions: + packages: write + steps: + - uses: actions/download-artifact@v3 + with: + name: cryostat-${{ matrix.arch }} + - name: Load cryostat image + run: podman load -i cryostat-${{ matrix.arch }}.tar + - name: Tag cryostat image + run: podman tag cryostat ghcr.io/${{ github.repository_owner }}/cryostat:pr-${{ github.event.number }}-${{ github.event.pull_request.head.sha }}-linux-${{ matrix.arch }} + - name: Push PR test image to ghcr.io + id: push-to-ghcr + uses: redhat-actions/push-to-registry@v2 + with: + image: cryostat + tags: pr-${{ github.event.number }}-${{ github.event.pull_request.head.sha }}-linux-${{ matrix.arch }} + registry: ghcr.io/${{ github.repository_owner }} + username: ${{ github.event.comment.user.login }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Store images as output amd64 + if: ${{ matrix.arch == 'amd64' }} + id: amd64_image + run: echo "image=${{ steps.push-to-ghcr.outputs.registry-path }}" >> "$GITHUB_OUTPUT" + - name: Store images as output + if: ${{ matrix.arch == 'arm64' }} + id: arm64_image + run: echo "image=${{ steps.push-to-ghcr.outputs.registry-path }}" >> "$GITHUB_OUTPUT" + + comment-image: + runs-on: ubuntu-latest + needs: [push-to-ghcr] + env: + amd64_image: ${{ needs.push-to-ghcr.outputs.amd64_image }} + arm64_image: ${{ needs.push-to-ghcr.outputs.arm64_image }} + permissions: + pull-requests: write + steps: + - name: Create markdown table + id: md-table + uses: petems/csv-to-md-table-action@v3.0.0 + with: + csvinput: | + ARCH, IMAGE + amd64, ${{ env.amd64_image }} + arm64, ${{ env.arm64_image }} + - uses: thollander/actions-comment-pull-request@v2 + with: + message: |- + ${{ steps.md-table.outputs.markdown-table }} + + To run smoketest: + ``` + # amd64 + CRYOSTAT_IMAGE=${{ env.amd64_image }} sh smoketest.sh + + # or arm64 + CRYOSTAT_IMAGE=${{ env.arm64_image }} sh smoketest.sh + ``` diff --git a/.github/workflows/cryostat-IT.yml b/.github/workflows/cryostat-IT.yml index 4aa6aff0..8b05263d 100644 --- a/.github/workflows/cryostat-IT.yml +++ b/.github/workflows/cryostat-IT.yml @@ -19,8 +19,11 @@ jobs: steps: - uses: actions/checkout@v4 with: - repository: cryostatio/cryostat + repository: ${{ github.repository_owner }}/cryostat ref: main + - uses: Mudlet/xmlstarlet-action@master + with: + args: ed -P -L -u '//_:properties[_:io.cryostat.core.version="2.23.0"]/_:io.cryostat.core.version' -v "2.24.0-SNAPSHOT" pom.xml - id: query-pom name: Get properties from POM # Query POM for image version and save as output parameter @@ -43,8 +46,7 @@ jobs: - uses: actions/checkout@v4 if: always() with: - repository: ${{ github.repository_owner }} - name: cryostat + repository: ${{ github.repository_owner }}/cryostat ref: main submodules: true fetch-depth: 0 @@ -62,6 +64,9 @@ jobs: step: restore - run: git submodule init - run: git submodule update + - uses: actions/download-artifact@v3 + with: + name: cryostat-core - run: mvn -B -U -Dbuild.arch=${{ inputs.build-arch }} clean package env: GITHUB_TOKEN_REF: ${{ secrets.GITHUB_TOKEN }} @@ -87,7 +92,7 @@ jobs: - uses: actions/checkout@v4 if: always() with: - repository: cryostatio/cryostat + repository: ${{ github.repository_owner }}/cryostat ref: main submodules: true fetch-depth: 0