name: "publish image" on: push: branches: ["master"] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true defaults: run: shell: bash jobs: package: permissions: contents: read packages: write runs-on: ubuntu-latest steps: - name: generate image tag id: tag run: | sha="${GITHUB_SHA::7}" unix="$(date +%s)" echo "tag=$sha-$unix" >> $GITHUB_OUTPUT - name: login to ghcr uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: checkout repo uses: actions/checkout@v3 - name: set up docker buildx uses: docker/setup-buildx-action@v2 - name: build and push image uses: docker/build-push-action@v3 with: context: . platforms: linux/amd64,linux/arm64 push: ${{ github.event_name != 'pull_request' }} tags: | ghcr.io/${{ github.repository }}:${{ steps.tag.outputs.tag }} ghcr.io/${{ github.repository }}:latest