fix(ci): use SSH-based deploy for dev (NAS paths unavailable on VPS runner)
Deploy Dashboard (Dev) / Backend Tests (push) Successful in 1m6s
Deploy Dashboard (Dev) / Frontend Tests (push) Successful in 47s
Deploy Dashboard (Dev) / Build Dev Image (push) Successful in 1m34s
Deploy Dashboard (Dev) / Deploy to Dev (push) Failing after 3s

This commit is contained in:
Gan, Jimmy
2026-07-07 15:59:57 +08:00
parent f39fb4c931
commit b2d53cb242
+9 -17
View File
@@ -187,23 +187,18 @@ jobs:
needs: [build-image-dev, frontend-tests] needs: [build-image-dev, frontend-tests]
env: env:
SECRET_KEY: test-secret-key-for-ci-environment-32chars-minimum SECRET_KEY: test-secret-key-for-ci-environment-32chars-minimum
container:
volumes:
- /var/packages/ContainerManager/target/usr/bin/docker:/usr/bin/docker
- /var/packages/ContainerManager/target/usr/bin/docker-compose:/usr/lib/docker/cli-plugins/docker-compose
- /volume1/docker/nas-dashboard:/volume1/docker/nas-dashboard
steps: steps:
- name: Checkout repository - name: Checkout repository
run: | run: |
if [ ! -d .git ]; then if [ ! -d .git ]; then
git clone --depth=1 --branch "$GITHUB_REF_NAME" "http://gitea:3000/${GITHUB_REPOSITORY}.git" . git clone --depth=1 --branch "$GITHUB_REF_NAME" "http://100.78.131.124:3300/${GITHUB_REPOSITORY}.git" .
fi fi
- name: Sync runtime compose file - name: Sync runtime compose file
run: | run: |
mkdir -p /volume1/docker/nas-dashboard ssh nasts "mkdir -p /volume1/docker/nas-dashboard"
cp dashboard/docker-compose.dev.yml /volume1/docker/nas-dashboard/docker-compose.dev.yml scp dashboard/docker-compose.dev.yml "nasts:/volume1/docker/nas-dashboard/docker-compose.dev.yml"
- name: Deploy dev - name: Deploy dev
env: env:
@@ -213,23 +208,20 @@ jobs:
GITEA_DB_PASSWORD: ${{ secrets.GITEA_DB_PASSWORD }} GITEA_DB_PASSWORD: ${{ secrets.GITEA_DB_PASSWORD }}
run: | run: |
set -u set -u
DOCKER="/volume1/@appstore/ContainerManager/usr/bin/docker" DOCKER="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker"
COMPOSE="/usr/lib/docker/cli-plugins/docker-compose" COMPOSE="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker-compose"
NAS_VOL="/volume1/docker/nas-dashboard" NAS_VOL="/volume1/docker/nas-dashboard"
# Sync compose file to NAS (already done in previous step, just in case)
mkdir -p $NAS_VOL
# Stop existing container if running # Stop existing container if running
$COMPOSE -f $NAS_VOL/docker-compose.dev.yml -p nas-dashboard-dev down 2>/dev/null || true $COMPOSE -f $NAS_VOL/docker-compose.dev.yml -p nas-dashboard-dev down 2>/dev/null || true
# Ensure network exists # Ensure network exists (create only if it doesn't exist)
if ! $DOCKER network inspect nas-dashboard_internal >/dev/null 2>&1; then if ! $DOCKER network inspect nas-dashboard_internal >/dev/null 2>&1; then
$DOCKER network create nas-dashboard_internal $DOCKER network create nas-dashboard_internal
fi fi
# Deploy # Deploy
cd $NAS_VOL && GITEA_TOKEN=$GITEA_TOKEN SECRET_KEY=$SECRET_KEY $COMPOSE -f docker-compose.dev.yml -p nas-dashboard-dev up -d --pull never 2>&1 || true ssh nasts "cd $NAS_VOL && GITEA_TOKEN=$GITEA_TOKEN SECRET_KEY=$SECRET_KEY /volume1/@appstore/ContainerManager/usr/bin/docker-compose -f docker-compose.dev.yml -p nas-dashboard-dev up -d --pull never" 2>&1 || true
if ! $DOCKER container inspect nas-dashboard-dev >/dev/null 2>&1; then if ! $DOCKER container inspect nas-dashboard-dev >/dev/null 2>&1; then
echo "Compose failed to create container..." echo "Compose failed to create container..."
@@ -246,7 +238,7 @@ jobs:
- name: Wait for container to be healthy - name: Wait for container to be healthy
run: | run: |
DOCKER="/volume1/@appstore/ContainerManager/usr/bin/docker" DOCKER="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker"
echo "Waiting for container to be healthy..." echo "Waiting for container to be healthy..."
for i in {1..30}; do for i in {1..30}; do
STATUS=$($DOCKER inspect --format='{{.State.Health.Status}}' nas-dashboard-dev 2>/dev/null || echo "starting") STATUS=$($DOCKER inspect --format='{{.State.Health.Status}}' nas-dashboard-dev 2>/dev/null || echo "starting")
@@ -266,7 +258,7 @@ jobs:
- name: Run smoke tests - name: Run smoke tests
run: | run: |
DOCKER="/volume1/@appstore/ContainerManager/usr/bin/docker" DOCKER="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker"
echo "=== Running smoke tests via docker exec ===" echo "=== Running smoke tests via docker exec ==="
# Test 1: Health check # Test 1: Health check