name: Docker image on: pull_request: types: - closed branches: - main workflow_dispatch: {} permissions: contents: write packages: write env: TURBO_TELEMETRY_DISABLED: 1 concurrency: production jobs: deploy: name: Deploy docker image runs-on: ubuntu-latest strategy: matrix: node-version: [20] steps: - name: Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: args: "Deployment of an image has been triggered" - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Build artifacts run: pnpm build - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Bump version and push tag id: githubTagAction uses: anothrNick/github-tag-action@1.67.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} WITH_V: false DRY_RUN: true - name: Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: args: "Image has been tagged as ${{ steps.githubTagAction.outputs.new_tag }}" - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | type=raw,value=latest type=raw,value=${{ steps.githubTagAction.outputs.new_tag }} - name: Build and push id: buildPushAction uses: docker/build-push-action@v5 with: platforms: linux/amd64,linux/arm64,linux/riscv64,linux/arm/v7,linux/arm/v6 context: . push: false tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max network: host - name: Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: args: "Image built with ID ${{ steps.buildPushAction.outputs.imageid }}"