fix: apply Docker 24 network workaround and smoke tests to production deploy #64

Merged
jimmy merged 18 commits from dev into main 2026-05-17 23:34:02 +08:00
Owner
No description provided.
jimmy added 18 commits 2026-05-17 23:33:33 +08:00
fix: upgrade vitest to v3, compat fixes for Svelte 5 + jsdom
Deploy Dashboard (Dev) / Frontend Tests (push) Failing after 43s
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been skipped
Deploy Dashboard (Dev) / Backend Tests (push) Failing after 4m0s
d978842c37
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: replace actions/checkout@v4 with local git clone from Gitea
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Successful in 1m45s
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
50e97c4a70
CI runner in China can't reach GitHub to download the checkout action.
Clone directly from internal Gitea container (http://gitea:3000) instead.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: wrap Svelte HMR configureServer for vitest 3 compat
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 10m12s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 51s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 2m2s
b092ab4583
Vitest 3 bundles its own Vite which omits server.config.server,
causing the Svelte plugin's hot-update configureServer hook to
throw TypeError. Catches the error safely during test runs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: add npm registry fallback when npmmirror is unreachable
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
3b8388f01c
CI runner in China may lose connectivity to npmmirror. Falls back
to default npmjs.org registry when npm ci fails with connector errors.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
chore: retry CI
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
b0cf119a52
fix: align deploy job with ubuntu-latest runner and fix smoke test docker access
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 33m9s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 54s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 1m41s
c6cd56693f
- Change deploy-dev job from runs-on: nas to runs-on: ubuntu-latest with
  container volumes mounting NAS Docker CLI, compose plugin, and compose dir
- Remove /volume1/repos/nas-tools path dependency in smoke test step
- Replace ssh nas docker with direct docker commands in smoke test script
  (container now has Docker CLI access)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Remove set -e from deploy step, handle errors explicitly
- Allow docker compose up to succeed even if network connect transiently fails
- Verify container exists and connect networks manually after compose
- Add network connection verification step

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: fix YAML syntax error in deploy step network verification
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
e12a3930fe
- Replace multi-line python3 -c with single-line to avoid YAML parser issue

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: add pip timeout, retries, and mirror fallback to all CI workflows
Deploy Dashboard (Dev) / Frontend Tests (push) Has been cancelled
Deploy Dashboard (Dev) / Deploy to Dev (push) Has been cancelled
Deploy Dashboard (Dev) / Backend Tests (push) Has been cancelled
13480f70a3
- Wrap pip install in timeout 300 to prevent hanging on slow mirrors
- Add --retries 3 --timeout 30 to pip for better resilience
- Fallback chain: default index → Tsinghua mirror → default index
- Applied to test.yml, deploy.yml, and deploy-dev.yml

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Docker 24.0.2 compose fails to create containers when it can't connect
external networks. Strip network configs from compose and connect
them manually after container creation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: fix YAML syntax error in compose override block
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 11m31s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 55s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 2m25s
9b05bd5e74
Heredoc content at column 0 broke YAML block scalar parsing.
Replaced heredoc with echo commands to maintain consistent indentation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: use network_mode:none in compose override for Docker 24 compat
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 12m48s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 34s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 1m27s
91769fe2c6
Docker Compose v2.20.1 still tries to connect external networks during
container creation even with networks:[]. Switch to network_mode:"none"
to fully prevent compose from touching networks, then connect them
manually after container creation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Docker Compose v2.20.1 fails to create containers when external
networks can't be connected. First try compose directly; if container
isn't created, strip networks from resolved config via JSON processing
and retry. Connect networks manually in both paths.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: strip networks from compose file for Docker 24 compat
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 14m49s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 43s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 6m11s
0ac3a896af
Docker Compose v2.20.1 fails to create containers that need external
networks. Try compose directly; if container isn't created, generate a
stripped copy of the compose file without network config and retry.
Connect networks manually in both paths.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: add SECRET_KEY env to deploy job for compose expansion
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 13m41s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 42s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 3m34s
cf1de9c631
Container runtime needs SECRET_KEY in the shell environment so docker
compose can expand ${SECRET_KEY} from the compose file.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix: open dev port to all interfaces and run smoke tests via docker exec
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 50s
Deploy Dashboard (Dev) / Deploy to Dev (push) Successful in 4m16s
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 8m14s
deb049c889
- Change port binding from 127.0.0.1:4001:4000 to 4001:4000 so CI containers
  can reach the dashboard from any network namespace
- Run smoke tests via docker exec against localhost:4000 instead of curling
  the external hostname, which resolves to the Caddy VPS and times out

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add SECRET_KEY env to deploy job for compose variable expansion
- Replace simple docker compose up with network stripping workaround
  (Docker 24 compose fails on external networks during container creation)
- Connect containers to networks manually after compose creates them
- Add smoke tests via docker exec against localhost:4000
- Create internal network manually when compose skips it

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
jimmy merged commit 9e83e85c8f into main 2026-05-17 23:34:02 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jimmy/nas-tools#64