👷 (CI): Push JVM image to GHCR on main
Changes
1 file changed, +40 -0
MODIFY
.github/workflows/ci.yml
+40 -0
@@ -33,3 +33,43 @@
33
33
cache: maven
34
34
- name: Native build + integration smoke tests
35
35
run: ./mvnw -B verify -Dnative -Dquarkus.native.container-build=true
36
+
37
+ jvm-image:
38
+ # Publish the JVM container image to GHCR once tests and the native gate pass.
39
+ if: github.ref == 'refs/heads/main'
40
+ runs-on: ubuntu-latest
41
+ needs: native-build-and-smoke
42
+ permissions:
43
+ contents: read
44
+ packages: write
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+ - uses: actions/setup-java@v4
48
+ with:
49
+ distribution: temurin
50
+ java-version: '21'
51
+ cache: maven
52
+ - name: Build application
53
+ run: ./mvnw -B package -DskipTests
54
+ - name: Log in to GHCR
55
+ uses: docker/login-action@v3
56
+ with:
57
+ registry: ghcr.io
58
+ username: ${{ github.actor }}
59
+ password: ${{ secrets.GITHUB_TOKEN }}
60
+ - name: Extract image metadata
61
+ id: meta
62
+ uses: docker/metadata-action@v5
63
+ with:
64
+ images: ghcr.io/${{ github.repository }}
65
+ tags: |
66
+ type=sha
67
+ type=raw,value=latest
68
+ - name: Build and push JVM image
69
+ uses: docker/build-push-action@v6
70
+ with:
71
+ context: .
72
+ file: src/main/docker/Dockerfile.jvm
73
+ push: true
74
+ tags: ${{ steps.meta.outputs.tags }}
75
+ labels: ${{ steps.meta.outputs.labels }}