| name: Publish Docker image |
| |
| on: |
| push: |
| branches: |
| - master |
| paths-ignore: |
| - '*.md' |
| - '.mailmap' |
| workflow_dispatch: |
| |
| permissions: |
| contents: read |
| packages: write |
| |
| env: |
| REGISTRY: ghcr.io |
| IMAGE_NAME: ${{ github.repository }} |
| |
| jobs: |
| publish: |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout repository |
| uses: actions/checkout@v4 |
| with: |
| submodules: true |
| |
| - name: Login to ${{ env.REGISTRY }} |
| uses: docker/login-action@v3 |
| with: |
| registry: ${{ env.REGISTRY }} |
| username: ${{ github.actor }} |
| password: ${{ secrets.GITHUB_TOKEN }} |
| |
| - name: Extract metadata |
| id: meta |
| uses: docker/metadata-action@v5 |
| with: |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} |
| flavor: latest=true |
| |
| - name: Build and push Docker image |
| uses: docker/build-push-action@v5 |
| with: |
| context: . |
| pull: true |
| push: true |
| tags: ${{ steps.meta.outputs.tags }} |
| labels: ${{ steps.meta.outputs.labels }} |