release.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. name: Create and publish a Docker image
  2. on:
  3. push:
  4. release:
  5. types: [published]
  6. env:
  7. REGISTRY: ghcr.io
  8. IMAGE_NAME: ${{ github.repository }}
  9. jobs:
  10. build-and-push-image:
  11. runs-on: ubuntu-latest
  12. permissions:
  13. contents: read
  14. packages: write
  15. steps:
  16. - name: Checkout repository
  17. uses: actions/checkout@v2
  18. - name: Set up QEMU
  19. uses: docker/setup-qemu-action@8b122486cedac8393e77aa9734c3528886e4a1a8
  20. - name: Set up Docker Buildx
  21. id: buildx
  22. uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6
  23. - name: Log in to Docker Hub
  24. uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
  25. with:
  26. username: ${{ github.actor }}
  27. password: ${{ secrets.DOCKER_PASSWORD }}
  28. - name: Log in to the Container registry
  29. uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
  30. with:
  31. registry: ${{ env.REGISTRY }}
  32. username: ${{ github.actor }}
  33. password: ${{ secrets.GITHUB_TOKEN }}
  34. - name: Extract metadata (tags, labels) for Docker
  35. id: meta
  36. uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
  37. with:
  38. images: |
  39. zricethezav/gitleaks
  40. ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
  41. tags: |
  42. type=semver,pattern=v{{version}}
  43. type=semver,pattern=v{{major}}
  44. type=semver,pattern=v{{major}}.{{minor}}
  45. - name: Build and push Docker image
  46. uses: docker/build-push-action@e551b19e49efd4e98792db7592c17c09b89db8d8
  47. with:
  48. platforms: linux/amd64,linux/arm64
  49. context: .
  50. push: false
  51. tags: ${{ steps.meta.outputs.tags }}
  52. labels: ${{ steps.meta.outputs.labels }}