From 2d2aa255d0a2ac410e3cacd2e3228e020708aac3 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Thu, 19 Jun 2025 09:31:11 +0200 Subject: [PATCH] cache compose tests --- .github/workflows/test.yml | 5 +++-- Makefile | 24 ++++++++++++------------ docker-bake.hcl | 13 +++---------- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c5693ae4bf..9bcc30cff9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,6 +20,7 @@ jobs: contents: read id-token: write packages: write + actions: write env: CACHE_DIR: /tmp/login-run-caches steps: @@ -62,10 +63,10 @@ jobs: # latest if branch is main, otherwise image version which is the pull request number BAKE_CLI: depot bake DEPOT_PROJECT_ID: jp837jn3fm - REF_TAG: ${{ github.ref == 'refs/heads/main' && 'latest' || fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} + DOCKER_METADATA_OUTPUT_VERSION: ${{ github.ref == 'refs/heads/main' && 'latest' || fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} - name: Save Run Caches uses: actions/cache/save@v4 with: path: ${{ env.CACHE_DIR }} key: ${{ steps.run-caches-restore.outputs.cache-primary-key }} - if: always() + if: always() && steps.run-caches-restore.outputs.cache-hit != 'true' diff --git a/Makefile b/Makefile index 81ee99b09e..ce6b6e6499 100644 --- a/Makefile +++ b/Makefile @@ -8,21 +8,21 @@ export COMPOSE_BAKE=true export LOGIN_TEST_ACCEPTANCE_BUILD_CONTEXT := apps/login-test-acceptance -export REF_TAG ?= local -export LOGIN_TAG := login:${REF_TAG} -export LOGIN_TEST_UNIT_TAG := login-test-unit:${REF_TAG} -export LOGIN_TEST_INTEGRATION_TAG := login-test-integration:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_TAG := login-test-acceptance:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_SETUP_TAG := login-test-acceptance-setup:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_SINK_TAG := login-test-acceptance-sink:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_OIDCRP_TAG := login-test-acceptance-oidcrp:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_OIDCOP_TAG := login-test-acceptance-oidcop:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_SAMLSP_TAG := login-test-acceptance-samlsp:${REF_TAG} -export LOGIN_TEST_ACCEPTANCE_SAMLIDP_TAG := login-test-acceptance-samlidp:${REF_TAG} +export DOCKER_METADATA_OUTPUT_VERSION ?= local +export LOGIN_TAG := login:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_UNIT_TAG := login-test-unit:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_INTEGRATION_TAG := login-test-integration:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_TAG := login-test-acceptance:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_SETUP_TAG := login-test-acceptance-setup:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_SINK_TAG := login-test-acceptance-sink:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_OIDCRP_TAG := login-test-acceptance-oidcrp:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_OIDCOP_TAG := login-test-acceptance-oidcop:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_SAMLSP_TAG := login-test-acceptance-samlsp:${DOCKER_METADATA_OUTPUT_VERSION} +export LOGIN_TEST_ACCEPTANCE_SAMLIDP_TAG := login-test-acceptance-samlidp:${DOCKER_METADATA_OUTPUT_VERSION} export POSTGRES_TAG := postgres:17.0-alpine3.19 export GOLANG_TAG := golang:1.24-alpine export ZITADEL_TAG ?= ghcr.io/zitadel/zitadel:02617cf17fdde849378c1a6b5254bbfb2745b164 -export CORE_MOCK_TAG := core-mock:${REF_TAG} +export CORE_MOCK_TAG := core-mock:${DOCKER_METADATA_OUTPUT_VERSION} .PHONY: login-help login-help: diff --git a/docker-bake.hcl b/docker-bake.hcl index 8f69ea04f2..0a2ada5725 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -1,13 +1,3 @@ -target "docker-metadata-action" {} - -variable "IMAGE_REGISTRY" { - default = "ghcr.io/zitadel" -} - -variable "REF_TAG" { - default = "local" -} - target "login-pnpm" { dockerfile = "dockerfiles/login-pnpm.Dockerfile" } @@ -102,8 +92,11 @@ variable "LOGIN_TAG" { default = "zitadel-login:local" } +target "docker-metadata-action" {} + # We run integration and acceptance tests against the next standalone server for docker. target "login-standalone" { + inherits = ["docker-metadata-action"] dockerfile = "dockerfiles/login-standalone.Dockerfile" contexts = { login-client = "target:login-client"