diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 14d0724..7f36e3e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -9,12 +9,11 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} # We'll lowercase it below + IMAGE_NAME: ${{ github.repository }} jobs: build-and-push: runs-on: ubuntu-latest - permissions: contents: read packages: write @@ -30,17 +29,17 @@ jobs: IMAGE_NAME_LOWER=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') echo "IMAGE_NAME_LOWER=${IMAGE_NAME_LOWER}" >> $GITHUB_ENV - - name: ๐Ÿ”‘ Log in to GitHub Container Registry (using PAT) + - name: ๐Ÿ—๏ธ Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + # -------------------- GHCR -------------------- + - name: ๐Ÿ”‘ Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GHCR_PAT }} - - name: ๐Ÿ—๏ธ Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - # 1๏ธโƒฃ Multi-arch build & push to GHCR - name: ๐Ÿงฑ Build and Push multi-arch image to GHCR uses: docker/build-push-action@v6 with: @@ -55,13 +54,23 @@ jobs: org.opencontainers.image.description=RetroIPTVGuide Flask + SQLite Web App org.opencontainers.image.licenses=CC-BY-NC-SA-4.0 - # 2๏ธโƒฃ Single-arch (amd64) build for Docker Hub + - name: ๐Ÿงน Cleanup local images + run: docker image prune -af || true + + # -------------------- Docker Hub -------------------- + - name: ๐Ÿณ Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: ๐Ÿงฑ Build and Push single-arch image to Docker Hub uses: docker/build-push-action@v6 with: context: . push: true platforms: linux/amd64 + provenance: false tags: | thehack904/retroiptvguide:latest thehack904/retroiptvguide:${{ github.ref_name }} @@ -70,26 +79,22 @@ jobs: org.opencontainers.image.description=RetroIPTVGuide Flask + SQLite Web App org.opencontainers.image.licenses=CC-BY-NC-SA-4.0 - - - name: ๐Ÿงน Cleanup local images - run: docker image prune -af || true - - - name: ๐Ÿณ Log in to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: ๐Ÿ“ฆ Push image to Docker Hub + # -------------------- Post-Build Summary -------------------- + - name: ๐Ÿงพ Post-build summary run: | - echo "๐Ÿงญ Tagging image for Docker Hub..." - docker tag ghcr.io/thehack904/retroiptvguide:latest thehack904/retroiptvguide:latest - docker tag ghcr.io/thehack904/retroiptvguide:${{ github.ref_name }} thehack904/retroiptvguide:${{ github.ref_name }} - echo "๐Ÿš€ Pushing images to Docker Hub..." - docker push thehack904/retroiptvguide:latest - docker push thehack904/retroiptvguide:${{ github.ref_name }} - echo "โœ… Docker Hub push complete." - + echo "" + echo "โœ… GHCR and Docker Hub builds complete." + echo "๐Ÿงฉ Published image tags:" + echo " ghcr.io/thehack904/retroiptvguide:latest" + echo " ghcr.io/thehack904/retroiptvguide:${{ github.ref_name }}" + echo " thehack904/retroiptvguide:latest" + echo " thehack904/retroiptvguide:${{ github.ref_name }}" + echo "" + echo "๐Ÿ”— Docker Hub: https://hub.docker.com/r/thehack904/retroiptvguide/tags" + echo "๐Ÿ”— GHCR: https://github.com/thehack904?tab=packages&repo_name=RetroIPTVGuide" + echo "" + + # -------------------- GHCR Cleanup -------------------- cleanup-ghcr: name: ๐Ÿงฝ Cleanup old GHCR images runs-on: ubuntu-latest