From ecd28c2d28708875b47f3b46ed9d4ccf7bc8507e Mon Sep 17 00:00:00 2001 From: Michael Reber Date: Fri, 24 Jul 2026 20:46:48 +0200 Subject: [PATCH] Add GHCR push to our CI/CD pipeline --- .gitea/workflows/build-harbor.yml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build-harbor.yml b/.gitea/workflows/build-harbor.yml index b866011..289a49e 100644 --- a/.gitea/workflows/build-harbor.yml +++ b/.gitea/workflows/build-harbor.yml @@ -32,10 +32,22 @@ jobs: run: | echo "$DH_TOKEN" | podman login docker.io --username "$DH_USER" --password-stdin + - name: Login to GHCR + if: ${{ secrets.GHCR_USERNAME && secrets.GHCR_TOKEN }} + env: + GHCR_USER: ${{ secrets.GHCR_USERNAME }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} + run: | + echo "$GHCR_TOKEN" | podman login ghcr.io --username "$GHCR_USER" --password-stdin + - name: Extract version id: version run: | - VERSION=$(node -e "console.log(require('./package.json').version)") + VERSION=$(sed -n 's/^const Version = "\(.*\)"$/\1/p' internal/version/version.go) + if [ -z "$VERSION" ]; then + echo "Failed to parse version from internal/version/version.go" >&2 + exit 1 + fi echo "version=v$VERSION" >> "$GITHUB_OUTPUT" - name: Build multi-arch manifest locally @@ -72,3 +84,15 @@ jobs: podman manifest push --all "$LOCAL_MANIFEST" "$DEST:${{ github.sha }}" podman manifest push --all "$LOCAL_MANIFEST" "$DEST:${{ steps.version.outputs.version }}" podman manifest push --all "$LOCAL_MANIFEST" "$DEST:latest" + + - name: Push to GHCR + if: ${{ secrets.GHCR_USERNAME && secrets.GHCR_TOKEN }} + env: + GHCR_NS: swissmakers + GHCR_REPO: fail2ban-ui + LOCAL_MANIFEST: localhost/fail2ban-ui:${{ github.sha }} + run: | + DEST="docker://ghcr.io/$GHCR_NS/$GHCR_REPO" + podman manifest push --all "$LOCAL_MANIFEST" "$DEST:${{ github.sha }}" + podman manifest push --all "$LOCAL_MANIFEST" "$DEST:${{ steps.version.outputs.version }}" + podman manifest push --all "$LOCAL_MANIFEST" "$DEST:latest"