From a113feda99a52cd49165cc98fd5d7a6614431234 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 6 Jun 2025 05:02:55 +0200 Subject: [PATCH] Merging upstream version 0.8.14. Signed-off-by: Daniel Baumann --- .github/workflows/generate-manifests.yaml | 65 +++++++++++++++++++++++ .github/workflows/release-production.yaml | 12 +++++ dockerfiles/Dockerfile | 2 +- 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/generate-manifests.yaml diff --git a/.github/workflows/generate-manifests.yaml b/.github/workflows/generate-manifests.yaml new file mode 100644 index 0000000..bdadec2 --- /dev/null +++ b/.github/workflows/generate-manifests.yaml @@ -0,0 +1,65 @@ +name: Create and push Docker manifests + +on: + workflow_call: + +jobs: + Run: + name: Create and push Docker manifests + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + attestations: write + id-token: write + env: + CGO_ENABLED: 0 + steps: + - name: Enable experimental Docker features + run: | + mkdir -p ~/.docker/ && \ + echo '{"experimental": "enabled"}' > ~/.docker/config.json + + - name: Create and push Docker manifests + env: + DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + GHCR_USER: ${{ secrets.BOT_USERNAME }} + GHCR_TOKEN: ${{ secrets.BOT_GHCR_PAT }} + run: | + # Login to Docker Hub and GHCR (redundant but ensures manifest push works) + echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin + echo "$GHCR_TOKEN" | docker login ghcr.io -u "$GHCR_USER" --password-stdin + + # Get the tag without the 'v' prefix + TAG="${GITHUB_REF_NAME#v}" + + # Architectures to include in manifests + ARCHES=("amd64" "i386" "armhf" "arm64v8") + + # Function to create and push manifests + create_and_push_manifest() { + local repo="$1" + local tag="$2" + local manifest="${repo}:${tag}" + local images=() + + # Collect images for the manifest + for arch in "${ARCHES[@]}"; do + images+=("${repo}:${arch}-${tag}") + done + + # Create the manifest + docker manifest create "$manifest" "${images[@]}" + + # Push the manifest + docker manifest push "$manifest" + } + + # Create and push manifests for Docker Hub + create_and_push_manifest "nickfedor/shoutrrr" "latest" + create_and_push_manifest "nickfedor/shoutrrr" "$TAG" + + # Create and push manifests for GHCR + create_and_push_manifest "ghcr.io/nicholas-fedor/shoutrrr" "latest" + create_and_push_manifest "ghcr.io/nicholas-fedor/shoutrrr" "$TAG" diff --git a/.github/workflows/release-production.yaml b/.github/workflows/release-production.yaml index c44cdd8..6e52dc6 100644 --- a/.github/workflows/release-production.yaml +++ b/.github/workflows/release-production.yaml @@ -26,7 +26,19 @@ jobs: - lint - test + generate-manifests: + uses: ./.github/workflows/generate-manifests.yaml + needs: + - build + secrets: inherit + permissions: + packages: write + contents: read + attestations: write + id-token: write + update-go-docs: uses: ./.github/workflows/update-go-docs.yaml needs: - build + - generate-manifests diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index dad392d..5a99bfd 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.21.3@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS alpine +FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715 AS alpine RUN apk add --no-cache ca-certificates