diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ff472f..a98219a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,9 +14,11 @@ jobs: strategy: fail-fast: false matrix: - platform: - - linux/amd64 - - linux/arm64 + include: + - platform: linux/amd64 + arch: amd64 + - platform: linux/arm64 + arch: arm64 steps: - name: Checkout repository @@ -52,8 +54,12 @@ jobs: platforms: ${{ matrix.platform }} labels: ${{ steps.meta.outputs.labels }} build-args: VERSION=${{ steps.meta.outputs.version }} - cache-from: type=gha,scope=build-${{ matrix.platform }} - cache-to: type=gha,mode=max,scope=build-${{ matrix.platform }} + cache-from: | + type=gha,scope=build-${{ matrix.arch }} + type=registry,ref=${{ secrets.DOCKER_REGISTRY }}:buildcache-${{ matrix.arch }} + cache-to: | + type=gha,mode=max,scope=build-${{ matrix.arch }} + type=registry,ref=${{ secrets.DOCKER_REGISTRY }}:buildcache-${{ matrix.arch }},mode=max outputs: type=image,name=${{ secrets.DOCKER_REGISTRY }},push-by-digest=true,name-canonical=true,push=true - name: Export digest diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6b546cc..cac4ae6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,7 +27,7 @@ jobs: - name: Generate swagger docs run: | - go install github.com/swaggo/swag/cmd/swag@latest + go install github.com/swaggo/swag/cmd/swag@v1.16.4 cd backend && swag init - name: Run unit tests with race detector and coverage @@ -66,6 +66,19 @@ jobs: cache: true cache-dependency-path: backend/go.sum + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Pre-build backend image with layer cache + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile + load: true + tags: garage-ui-smoke-backend:ci + cache-from: type=gha,scope=smoke-backend + cache-to: type=gha,mode=max,scope=smoke-backend + - name: Run smoke test run: make test-smoke diff --git a/Dockerfile b/Dockerfile index 4dbbd9b..99ef350 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ WORKDIR /app RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ - go install github.com/swaggo/swag/cmd/swag@latest + go install github.com/swaggo/swag/cmd/swag@v1.16.4 COPY backend/go.mod backend/go.sum ./ diff --git a/backend/tests/smoke/docker-compose.test.yml b/backend/tests/smoke/docker-compose.test.yml index 5c900d5..e01164d 100644 --- a/backend/tests/smoke/docker-compose.test.yml +++ b/backend/tests/smoke/docker-compose.test.yml @@ -15,6 +15,7 @@ services: start_period: 2s backend: + image: garage-ui-smoke-backend:ci build: context: ../../.. dockerfile: Dockerfile