2 Commits

Author SHA1 Message Date
Ilia Denisov 9ebb2e7f0f ci: rename workflows for Gitea UI readability
Tests · Go / test (push) Successful in 2m31s
Tests · Integration / integration (pull_request) Successful in 2m23s
Tests · Go / test (pull_request) Successful in 2m50s
Tests · UI / test (push) Successful in 13m2s
Tests · UI / test (pull_request) Successful in 13m22s
Switches the `name:` field on every workflow to the bulleted style:

  Tests · Go            (go-unit.yaml)
  Tests · UI            (ui-test.yaml)
  Tests · Integration   (integration.yaml)
  Deploy · Dev          (dev-deploy.yaml)
  Build · Prod          (prod-build.yaml)
  Deploy · Prod         (deploy-prod.yaml)

File names stay the same so existing path filters and any URL
references continue to work.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:22:53 +02:00
Ilia Denisov 0da360a644 dev-deploy: fix backend startup in CI
Two bugs surfaced on the first real merge into development:

1. `${{ env.HOME }}` evaluates to empty string at the workflow stage,
   so GALAXY_DEV_GAME_STATE_DIR became `/.galaxy-dev/game-state`.
   Resolve in the shell instead of YAML.

2. The compose bind-mount of GeoIP2-Country-Test.mmdb referenced a
   path inside the runner's workspace volume, which the host Docker
   daemon cannot see — it created an empty directory and the backend
   crashed with "geoip database: is a directory" in a restart loop.
   Bake the file into the backend image so dev-deploy no longer needs
   a bind-mount; local-dev compose still mounts it on top for swap-in
   during development.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:22:16 +02:00
8 changed files with 25 additions and 9 deletions
+1 -1
View File
@@ -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
+4 -3
View File
@@ -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
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -1,4 +1,4 @@
name: integration
name: Tests · Integration
# Full integration suite (testcontainers-driven, ~510 minutes). Heavy
# enough that we do not run it on every push to a feature branch — only
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+5 -1
View File
@@ -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:
+11
View File
@@ -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"]