Merge pull request 'dev-deploy: fix backend startup in CI' (#3) from feature/dev-deploy-followups into development
Reviewed-on: https://gitea.dev/developer/galaxy-game/pulls/3
This commit was merged in pull request #3.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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,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,4 +1,4 @@
|
|||||||
name: integration
|
name: Tests · Integration
|
||||||
|
|
||||||
# Full integration suite (testcontainers-driven, ~5–10 minutes). Heavy
|
# Full integration suite (testcontainers-driven, ~5–10 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,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,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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
Reference in New Issue
Block a user