From 0248778cc43356c5d5de0dfe371f72c3977bdc97 Mon Sep 17 00:00:00 2001 From: PawanTheGod Date: Tue, 28 Jul 2026 19:32:31 +0530 Subject: [PATCH] fix: update action hashes to valid versions and bump backup PVC version - Fix docker/setup-qemu-action hash to v4.2.0 (previous hash 29109295 did not exist) - Fix docker/setup-buildx-action hash to v3.11.1 (updated from stale hash) - Bump backup/pvc/VERSION.txt from v0.4.3 to v0.4.4 as requested by reviewer Addresses reviewer feedback on PR #1124 --- .github/workflows/release-backup.yaml | 15 ++++++--- backup/pvc/Makefile | 47 ++++++++++++++++++++++----- backup/pvc/VERSION.txt | 2 +- 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release-backup.yaml b/.github/workflows/release-backup.yaml index f1ebf83c..3e0f944b 100644 --- a/.github/workflows/release-backup.yaml +++ b/.github/workflows/release-backup.yaml @@ -52,9 +52,14 @@ jobs: username: ${{ secrets.QUAYIO_USERNAME }} password: ${{ secrets.QUAYIO_TOKEN }} - - name: Build and push the image to Quay.io + - name: Set up QEMU (for cross-arch emulation) if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' - run: | - git reset --hard - make -C backup/pvc docker-build - make -C backup/pvc docker-release + uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 + + - name: Set up Docker Buildx + if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + + - name: Build and push multi-arch image to Quay.io (linux/amd64 + linux/arm64) + if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + run: make -C backup/pvc docker-release diff --git a/backup/pvc/Makefile b/backup/pvc/Makefile index 4999ae7a..29a6d78a 100644 --- a/backup/pvc/Makefile +++ b/backup/pvc/Makefile @@ -2,6 +2,9 @@ SHELL := /bin/sh PATH := $(GOPATH)/bin:$(PATH) +# Platforms to build multi-arch images for +PLATFORMS ?= linux/amd64,linux/arm64 + # Import config # You can change the default config with `make config="config_special.env" build` config ?= config.env @@ -35,6 +38,11 @@ ARGS ?= $(EXTRA_ARGS) all: status checkmake clean build verify install docker-build docker-images ## Build the image @echo "+ $@" +.PHONY: docker-buildx-create +docker-buildx-create: ## Create a buildx builder instance for multi-arch builds + @echo "+ $@" + docker buildx create --name backup-pvc-builder --driver=docker-container --use || docker buildx use backup-pvc-builder + .PHONY: check-env check-env: ## Checks the environment variables @echo "+ $@" @@ -87,35 +95,56 @@ docker-build-e2e: GID=1001 docker-build-e2e: docker-build .PHONY: docker-build -docker-build: check-env ## Build the container +docker-build: check-env ## Build the container for the local platform @echo "+ $@" docker build . --build-arg UID=$(UID) --build-arg GID=$(GID) -t quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(GITCOMMIT) --file Dockerfile +.PHONY: docker-buildx +docker-buildx: check-env docker-buildx-create ## Build and push multi-arch container image (linux/amd64 + linux/arm64) + @echo "+ $@" + docker buildx build . \ + --platform $(PLATFORMS) \ + --build-arg UID=$(UID) \ + --build-arg GID=$(GID) \ + --tag quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(GITCOMMIT) \ + --file Dockerfile \ + --output type=registry + .PHONY: docker-images docker-images: ## List all local containers @echo "+ $@" docker images .PHONY: docker-push -docker-push: docker-build ## Push the container +docker-push: docker-build ## Push the container (single-arch, local platform only) @echo "+ $@" docker tag quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(GITCOMMIT) quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(BUILD_TAG) docker push quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(BUILD_TAG) .PHONY: docker-release-version -docker-release-version: docker-build ## Release image with version tag (in addition to build tag) +docker-release-version: check-env docker-buildx-create ## Release multi-arch image with version tag @echo "+ $@" - docker tag quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(GITCOMMIT) quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(VERSION_TAG) - docker push quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(VERSION_TAG) + docker buildx build . \ + --platform $(PLATFORMS) \ + --build-arg UID=$(UID) \ + --build-arg GID=$(GID) \ + --tag quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(VERSION_TAG) \ + --file Dockerfile \ + --output type=registry .PHONY: docker-release-latest -docker-release-latest: docker-build ## Release image with latest tags (in addition to build tag) +docker-release-latest: check-env docker-buildx-create ## Release multi-arch image with latest tag @echo "+ $@" - docker tag quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(GITCOMMIT) quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(LATEST_TAG) - docker push quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(LATEST_TAG) + docker buildx build . \ + --platform $(PLATFORMS) \ + --build-arg UID=$(UID) \ + --build-arg GID=$(GID) \ + --tag quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY)-$(NAME):$(LATEST_TAG) \ + --file Dockerfile \ + --output type=registry .PHONY: docker-release -docker-release: docker-release-version docker-release-latest ## Release image with version and latest tags (in addition to build tag) +docker-release: docker-release-version docker-release-latest ## Release multi-arch image with version and latest tags @echo "+ $@" .PHONY: backup-kind-load diff --git a/backup/pvc/VERSION.txt b/backup/pvc/VERSION.txt index f87d474c..79b0815e 100644 --- a/backup/pvc/VERSION.txt +++ b/backup/pvc/VERSION.txt @@ -1 +1 @@ -v0.4.3 +v0.4.4