From 93a2f54f9705f46adfa591776c7ddd3532585703 Mon Sep 17 00:00:00 2001 From: zwitschi Date: Thu, 23 Oct 2025 19:28:41 +0200 Subject: [PATCH] fix: build workflow variables --- .gitea/workflows/build-and-push.yml | 47 ++++++++++++++++++++++++----- tests/e2e/conftest.py | 3 +- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/build-and-push.yml b/.gitea/workflows/build-and-push.yml index 7ad5905..bf2c425 100644 --- a/.gitea/workflows/build-and-push.yml +++ b/.gitea/workflows/build-and-push.yml @@ -7,22 +7,53 @@ on: jobs: build-and-push: runs-on: ubuntu-latest + env: + DEFAULT_BRANCH: main + REGISTRY_ORG: allucanget + REGISTRY_IMAGE_NAME: calminer + REGISTRY_URL: ${{ secrets.REGISTRY_URL }} + REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} steps: - name: Checkout code uses: actions/checkout@v4 - - name: Login to Gitea Registry + - name: Collect workflow metadata + id: meta + shell: bash + run: | + ref_name="${GITHUB_REF_NAME:-${GITHUB_REF##*/}}" + event_name="${GITHUB_EVENT_NAME:-}" + sha="${GITHUB_SHA:-}" + + if [ "$ref_name" = "${DEFAULT_BRANCH:-main}" ]; then + echo "on_default=true" >> "$GITHUB_OUTPUT" + else + echo "on_default=false" >> "$GITHUB_OUTPUT" + fi + + echo "ref_name=$ref_name" >> "$GITHUB_OUTPUT" + echo "event_name=$event_name" >> "$GITHUB_OUTPUT" + echo "sha=$sha" >> "$GITHUB_OUTPUT" + + - name: Set up QEMU and Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Gitea registry + if: ${{ steps.meta.outputs.on_default == 'true' }} uses: docker/login-action@v3 + continue-on-error: true with: - registry: ${{ secrets.REGISTRY_URL }} - username: ${{ secrets.REGISTRY_USERNAME }} - password: ${{ secrets.REGISTRY_PASSWORD }} + registry: ${{ env.REGISTRY_URL }} + username: ${{ env.REGISTRY_USERNAME }} + password: ${{ env.REGISTRY_PASSWORD }} - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . - push: true - tags: ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USERNAME }}/calminer:latest - cache-from: type=gha - cache-to: type=gha,mode=max + file: Dockerfile + push: ${{ steps.meta.outputs.on_default == 'true' && steps.meta.outputs.event_name != 'pull_request' && (env.REGISTRY_URL != '' && env.REGISTRY_USERNAME != '' && env.REGISTRY_PASSWORD != '') }} + tags: | + ${{ env.REGISTRY_URL }}/${{ env.REGISTRY_ORG }}/${{ env.REGISTRY_IMAGE_NAME }}:latest + ${{ env.REGISTRY_URL }}/${{ env.REGISTRY_ORG }}/${{ env.REGISTRY_IMAGE_NAME }}:${{ steps.meta.outputs.sha }} diff --git a/tests/e2e/conftest.py b/tests/e2e/conftest.py index 0745210..f3a9d4b 100644 --- a/tests/e2e/conftest.py +++ b/tests/e2e/conftest.py @@ -94,7 +94,8 @@ def page(browser: Browser, live_server: str) -> Generator[Page, None, None]: def _prepare_database_environment(env: Dict[str, str]) -> Dict[str, str]: """Ensure granular database env vars are available for the app under test.""" - required = ("DATABASE_HOST", "DATABASE_USER", "DATABASE_NAME") + required = ("DATABASE_HOST", "DATABASE_USER", + "DATABASE_NAME", "DATABASE_PASSWORD") if all(env.get(key) for key in required): return env