From 890246148927174e02dee6c31c53eff8dbcdb7f9 Mon Sep 17 00:00:00 2001 From: Maxim Date: Tue, 1 Oct 2024 14:48:09 +0300 Subject: [PATCH] FEAT: GitHub actions for pushing cli image --- .github/workflows/push-github.yml | 70 +++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/push-github.yml diff --git a/.github/workflows/push-github.yml b/.github/workflows/push-github.yml new file mode 100644 index 00000000..9667783f --- /dev/null +++ b/.github/workflows/push-github.yml @@ -0,0 +1,70 @@ +name: Publish image to GitHub Packages +on: + push: + tags: + - v1.27.* + +env: + REGISTRY: ghcr.io + IMAGE_NAME: veraPDF/cli + +jobs: + publish: + if: github.repository == 'veraPDF/veraPDF-apps' + name: Build and push Docker image to GitHub packages + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for GitHub + id: meta + uses: docker/metadata-action@v2 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Calculate version + env: + TAG: ${{ github.ref_name }} + id: version + run: echo "::set-output name=version::${TAG##*.}" + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: . + push: true + file: Dockerfile + build-args: | + VERAPDF_VERSION=1.27 + VERAPDF_MINOR_VERSION=${{ steps.version.outputs.version }} + VERAPDF_INSTALLER_FOLDER=develop + tags: ghcr.io/verapdf/cli:dev,${{ github.ref_name }} + labels: ${{ steps.meta.outputs.labels }} + + send-notification: + runs-on: ubuntu-latest + needs: [checkout-and-build, merge] + if: | + always() && + github.repository == 'veraPDF/veraPDF-apps' && + (contains(needs.*.result, 'failure') || + contains(needs.*.result, 'skipped') || + contains(needs.*.result, 'cancelled')) + steps: + - name: Send notification if build or push failed + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_NOTIFICATIONS_BOT_TOKEN }} + uses: voxmedia/github-action-slack-notify-build@v1 + with: + channel_id: C03E3JJGLQL + status: FAILED + color: danger +