docker.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. name: Docker
  2. permissions: read-all
  3. on:
  4. schedule:
  5. - cron: '0 1 * * *'
  6. push:
  7. tags:
  8. - '*.*.*'
  9. jobs:
  10. docker-images:
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout
  14. uses: actions/checkout@v3
  15. with:
  16. fetch-depth: 0
  17. - name: Generate Alpine Docker tag
  18. id: docker_alpine_tag
  19. run: |
  20. DOCKER_IMAGE=${{ github.repository_owner }}/miniflux
  21. DOCKER_VERSION=dev
  22. if [ "${{ github.event_name }}" = "schedule" ]; then
  23. DOCKER_VERSION=nightly
  24. TAGS="${DOCKER_IMAGE}:${DOCKER_VERSION},ghcr.io/${DOCKER_IMAGE}:${DOCKER_VERSION}"
  25. elif [[ $GITHUB_REF == refs/tags/* ]]; then
  26. DOCKER_VERSION=${GITHUB_REF#refs/tags/}
  27. TAGS="${DOCKER_IMAGE}:${DOCKER_VERSION},ghcr.io/${DOCKER_IMAGE}:${DOCKER_VERSION},${DOCKER_IMAGE}:latest,ghcr.io/${DOCKER_IMAGE}:latest"
  28. fi
  29. echo ::set-output name=tags::${TAGS}
  30. - name: Generate Distroless Docker tag
  31. id: docker_distroless_tag
  32. run: |
  33. DOCKER_IMAGE=${{ github.repository_owner }}/miniflux
  34. DOCKER_VERSION=dev-distroless
  35. if [ "${{ github.event_name }}" = "schedule" ]; then
  36. DOCKER_VERSION=nightly-distroless
  37. TAGS="${DOCKER_IMAGE}:${DOCKER_VERSION},ghcr.io/${DOCKER_IMAGE}:${DOCKER_VERSION}"
  38. elif [[ $GITHUB_REF == refs/tags/* ]]; then
  39. DOCKER_VERSION=${GITHUB_REF#refs/tags/}-distroless
  40. TAGS="${DOCKER_IMAGE}:${DOCKER_VERSION},ghcr.io/${DOCKER_IMAGE}:${DOCKER_VERSION},${DOCKER_IMAGE}:latest-distroless,ghcr.io/${DOCKER_IMAGE}:latest-distroless"
  41. fi
  42. echo ::set-output name=tags::${TAGS}
  43. - name: Set up QEMU
  44. uses: docker/setup-qemu-action@v2
  45. - name: Set up Docker Buildx
  46. uses: docker/setup-buildx-action@v2
  47. - name: Login to DockerHub
  48. uses: docker/login-action@v2
  49. with:
  50. username: ${{ secrets.DOCKERHUB_USERNAME }}
  51. password: ${{ secrets.DOCKERHUB_TOKEN }}
  52. - name: Login to GitHub Container Registry
  53. uses: docker/login-action@v2
  54. with:
  55. registry: ghcr.io
  56. username: ${{ github.repository_owner }}
  57. password: ${{ secrets.CR_PAT }}
  58. - name: Build and Push Alpine images
  59. uses: docker/build-push-action@v3
  60. with:
  61. context: .
  62. file: ./packaging/docker/alpine/Dockerfile
  63. platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64
  64. push: true
  65. tags: ${{ steps.docker_alpine_tag.outputs.tags }}
  66. - name: Build and Push Distroless images
  67. uses: docker/build-push-action@v3
  68. with:
  69. context: .
  70. file: ./packaging/docker/distroless/Dockerfile
  71. platforms: linux/amd64,linux/arm64
  72. push: true
  73. tags: ${{ steps.docker_distroless_tag.outputs.tags }}