diff --git a/.github/workflows/buildkit-parallelization.yaml b/.github/workflows/buildkit-parallelization.yaml new file mode 100644 index 0000000..4761d71 --- /dev/null +++ b/.github/workflows/buildkit-parallelization.yaml @@ -0,0 +1,35 @@ +name: Build and publish Docker image for GHCR + +on: + push: + +jobs: + build_and_publish: + env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }}/buildkit-parallelization + runs-on: ubuntu-22.04 # ubuntu-latest + steps: + - name: Checkout the repo + uses: actions/checkout@v4 + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GHCR_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: ./buildkit-parallelization + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/buildkit-parallelization/Dockerfile b/buildkit-parallelization/Dockerfile index 0e6daa1..defd479 100644 --- a/buildkit-parallelization/Dockerfile +++ b/buildkit-parallelization/Dockerfile @@ -1,11 +1,22 @@ -FROM eclipse-temurin@sha256:831f00e903bf888787b8ffd1bf5252e5903e1b19d5bc17f7e5b9761ffec11785 AS builder +FROM eclipse-temurin:17-jdk AS package WORKDIR /opt/build COPY . . -RUN ./mvnw --no-transfer-progress --batch-mode verify +RUN ./mvnw --no-transfer-progress --batch-mode -Dmaven.test.skip package -FROM eclipse-temurin@sha256:831f00e903bf888787b8ffd1bf5252e5903e1b19d5bc17f7e5b9761ffec11785 AS release +FROM package AS test +RUN ./mvnw --no-transfer-progress --batch-mode test +RUN touch .faky-test + +FROM package AS verify +# Чтобы пропустить долгий maven dependency check, добавьте -Ddependency-check.skip +RUN ./mvnw --no-transfer-progress --batch-mode -Dassembly.skipAssembly -Dmaven.test.skip verify +RUN touch .faky-verify + +FROM eclipse-temurin:17-ubi9-minimal AS release WORKDIR /opt/app -COPY --from=builder /opt/build/target/app.jar . +COPY --from=package /opt/build/target/app.jar . +COPY --from=test /opt/build/.faky-test /dev/null +COPY --from=verify /opt/build/.faky-verify /dev/null ENV APP_SIGN_ALGO HmacSHA256 ENV APP_SIGN_KEY 073b9ce8277c4d70dba2edf33e80f6a2bde0dbd7e5c9d149ccc20ba8b125129b @@ -13,4 +24,4 @@ ENV APP_SIGN_KEY 073b9ce8277c4d70dba2edf33e80f6a2bde0dbd7e5c9d149ccc20ba8b125129 USER 1000 EXPOSE 8080 -CMD ["java", "-jar", "app.jar"] \ No newline at end of file +CMD ["java", "-jar", "app.jar"]