dev-deploy: fix backend startup in CI #3

Merged
developer merged 2 commits from feature/dev-deploy-followups into development 2026-05-13 22:42:03 +00: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 # Placeholder for the production rollout workflow. Today it only proves
# the manual entry point works; the actual `docker save | ssh prod # 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 # Builds the Galaxy stack and (re)deploys it into the long-lived dev
# environment on the host running this Gitea Actions runner. Triggered # environment on the host running this Gitea Actions runner. Triggered
@@ -100,9 +100,10 @@ jobs:
- name: Bring up the stack - name: Bring up the stack
working-directory: tools/dev-deploy working-directory: tools/dev-deploy
env:
GALAXY_DEV_GAME_STATE_DIR: ${{ env.HOME }}/.galaxy-dev/game-state
run: | 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" mkdir -p "$GALAXY_DEV_GAME_STATE_DIR"
docker compose up -d --wait --remove-orphans 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 # 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. # 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 # Full integration suite (testcontainers-driven, ~510 minutes). Heavy
# enough that we do not run it on every push to a feature branch — only # 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 # Builds the production-grade Docker images and the UI bundle on every
# merge into `main`, then saves the artifacts so a future # 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 # 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 # 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} target: ${GALAXY_DEV_GAME_STATE_DIR}
bind: bind:
create_host_path: true 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: networks:
- galaxy-internal - galaxy-internal
healthcheck: healthcheck:
+11
View File
@@ -24,6 +24,16 @@ COPY pkg/transcoder/ ./pkg/transcoder/
COPY pkg/util/ ./pkg/util/ COPY pkg/util/ ./pkg/util/
COPY backend/ ./backend/ 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 RUN <<'EOF' cat > go.work
go 1.26.2 go 1.26.2
@@ -67,5 +77,6 @@ EXPOSE 8080
EXPOSE 8081 EXPOSE 8081
COPY --from=builder /out/backend /usr/local/bin/backend 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"] ENTRYPOINT ["/usr/local/bin/backend"]