diff --git a/.gitea/workflows/deploy-prod.yaml b/.gitea/workflows/deploy-prod.yaml index 7514a3c..2d51353 100644 --- a/.gitea/workflows/deploy-prod.yaml +++ b/.gitea/workflows/deploy-prod.yaml @@ -1,4 +1,4 @@ -name: deploy-prod +name: Deploy · Prod # Placeholder for the production rollout workflow. Today it only proves # the manual entry point works; the actual `docker save | ssh prod diff --git a/.gitea/workflows/dev-deploy.yaml b/.gitea/workflows/dev-deploy.yaml index 13c4a92..8337022 100644 --- a/.gitea/workflows/dev-deploy.yaml +++ b/.gitea/workflows/dev-deploy.yaml @@ -1,4 +1,4 @@ -name: dev-deploy +name: Deploy · Dev # Builds the Galaxy stack and (re)deploys it into the long-lived dev # environment on the host running this Gitea Actions runner. Triggered @@ -100,9 +100,10 @@ jobs: - name: Bring up the stack working-directory: tools/dev-deploy - env: - GALAXY_DEV_GAME_STATE_DIR: ${{ env.HOME }}/.galaxy-dev/game-state run: | + # Resolve in the shell, not in YAML expressions — `env.HOME` + # is empty at the workflow-evaluation stage. + export GALAXY_DEV_GAME_STATE_DIR="$HOME/.galaxy-dev/game-state" mkdir -p "$GALAXY_DEV_GAME_STATE_DIR" docker compose up -d --wait --remove-orphans diff --git a/.gitea/workflows/go-unit.yaml b/.gitea/workflows/go-unit.yaml index 200d15b..7c2c10a 100644 --- a/.gitea/workflows/go-unit.yaml +++ b/.gitea/workflows/go-unit.yaml @@ -1,4 +1,4 @@ -name: go-unit +name: Tests · Go # Fast unit tests for the Go side of the monorepo. Runs on every push # and pull request whose path filter matches a Go source directory. diff --git a/.gitea/workflows/integration.yaml b/.gitea/workflows/integration.yaml index 240f244..dcdceec 100644 --- a/.gitea/workflows/integration.yaml +++ b/.gitea/workflows/integration.yaml @@ -1,4 +1,4 @@ -name: integration +name: Tests · Integration # Full integration suite (testcontainers-driven, ~5–10 minutes). Heavy # enough that we do not run it on every push to a feature branch — only diff --git a/.gitea/workflows/prod-build.yaml b/.gitea/workflows/prod-build.yaml index f511e81..fd4aa71 100644 --- a/.gitea/workflows/prod-build.yaml +++ b/.gitea/workflows/prod-build.yaml @@ -1,4 +1,4 @@ -name: prod-build +name: Build · Prod # Builds the production-grade Docker images and the UI bundle on every # merge into `main`, then saves the artifacts so a future diff --git a/.gitea/workflows/ui-test.yaml b/.gitea/workflows/ui-test.yaml index 5eff4ff..93ee672 100644 --- a/.gitea/workflows/ui-test.yaml +++ b/.gitea/workflows/ui-test.yaml @@ -1,4 +1,4 @@ -name: ui-test +name: Tests · UI # UI-side unit and end-to-end tests (Vitest + Playwright). The Go side # of the workspace is tested in `go-unit.yaml`. Both workflows can run diff --git a/tools/dev-deploy/docker-compose.yml b/tools/dev-deploy/docker-compose.yml index 5a449df..a6e4e67 100644 --- a/tools/dev-deploy/docker-compose.yml +++ b/tools/dev-deploy/docker-compose.yml @@ -125,7 +125,11 @@ services: target: ${GALAXY_DEV_GAME_STATE_DIR} bind: create_host_path: true - - ../../pkg/geoip/test-data/test-data/GeoIP2-Country-Test.mmdb:/var/lib/galaxy/geoip.mmdb:ro + # The GeoIP database is baked into the backend image (see + # tools/local-dev/backend.Dockerfile); a bind-mount is not used + # here because the source path resolves inside the runner + # workspace volume and the host Docker daemon cannot see it, + # which produced an "is a directory" error in CI. networks: - galaxy-internal healthcheck: diff --git a/tools/local-dev/backend.Dockerfile b/tools/local-dev/backend.Dockerfile index 1cd01c3..01e5898 100644 --- a/tools/local-dev/backend.Dockerfile +++ b/tools/local-dev/backend.Dockerfile @@ -24,6 +24,16 @@ COPY pkg/transcoder/ ./pkg/transcoder/ COPY pkg/util/ ./pkg/util/ COPY backend/ ./backend/ +# Bake the GeoIP test database into the build context so downstream +# stages can copy it into the runtime image. The path is the +# `MaxMind-DB` git submodule under `pkg/geoip/test-data/`; the file is +# the smallest country DB MaxMind publishes and is what every other +# dev-stack uses. Baking it lets dev-deploy skip the bind-mount that +# fails on runner-workspace volumes the host Docker daemon cannot see. +RUN mkdir -p /out/var/lib/galaxy +COPY pkg/geoip/test-data/test-data/GeoIP2-Country-Test.mmdb \ + /out/var/lib/galaxy/geoip.mmdb + RUN <<'EOF' cat > go.work go 1.26.2 @@ -67,5 +77,6 @@ EXPOSE 8080 EXPOSE 8081 COPY --from=builder /out/backend /usr/local/bin/backend +COPY --from=builder /out/var/lib/galaxy/geoip.mmdb /var/lib/galaxy/geoip.mmdb ENTRYPOINT ["/usr/local/bin/backend"]