New file |
| | |
| | | name: Docker |
| | | |
| | | on: |
| | | push: |
| | | branches: ['master'] |
| | | tags: ['v*.*.*'] |
| | | pull_request: |
| | | branches: ['master'] |
| | | |
| | | env: |
| | | REGISTRY: ghcr.io |
| | | IMAGE_NAME: ${{ github.repository }} |
| | | |
| | | jobs: |
| | | build: |
| | | |
| | | runs-on: ubuntu-latest |
| | | permissions: |
| | | contents: read |
| | | packages: write |
| | | |
| | | steps: |
| | | - name: Checkout repository |
| | | uses: actions/checkout@v4 |
| | | |
| | | - name: Set up Docker Buildx |
| | | uses: docker/setup-buildx-action@v3.0.0 |
| | | |
| | | - name: Log into ${{ env.REGISTRY }} registry |
| | | if: github.event_name != 'pull_request' |
| | | uses: docker/login-action@v3.0.0 |
| | | with: |
| | | registry: ${{ env.REGISTRY }} |
| | | username: ${{ github.actor }} |
| | | password: ${{ secrets.GITHUB_TOKEN }} |
| | | |
| | | - name: Extract Docker metadata |
| | | id: meta |
| | | uses: docker/metadata-action@v5.0.0 |
| | | with: |
| | | images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} |
| | | |
| | | - name: Build and push Docker image |
| | | id: build-and-push |
| | | uses: docker/build-push-action@v5.0.0 |
| | | with: |
| | | context: . |
| | | push: ${{ github.event_name != 'pull_request' }} |
| | | tags: ${{ steps.meta.outputs.tags }} |
| | | labels: ${{ steps.meta.outputs.labels }} |
| | | cache-from: type=gha |
| | | cache-to: type=gha,mode=max |