publish-container.yml
1 name: Create and publish a Docker image 2 3 on: 4 push: 5 branches: ['master'] 6 tags: ['*.*.*'] 7 8 env: 9 REGISTRY: ghcr.io 10 IMAGE_NAME: ${{ github.repository }} 11 12 jobs: 13 build-and-push-image: 14 runs-on: ubuntu-latest 15 permissions: 16 contents: read 17 packages: write 18 19 steps: 20 - name: Checkout repository 21 uses: actions/checkout@v3 22 23 - name: Log in to the Container registry 24 uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 25 with: 26 registry: ${{ env.REGISTRY }} 27 username: ${{ github.actor }} 28 password: ${{ secrets.GITHUB_TOKEN }} 29 30 - name: Extract metadata (tags, labels) for Docker 31 id: meta 32 uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 33 with: 34 images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 35 36 - name: Build and push Docker image 37 uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc 38 with: 39 context: . 40 push: true 41 tags: ${{ steps.meta.outputs.tags }} 42 labels: ${{ steps.meta.outputs.labels }}