fix(ci): use SSH-based deploy for dev (NAS paths unavailable on VPS runner)
This commit is contained in:
@@ -187,23 +187,18 @@ jobs:
|
||||
needs: [build-image-dev, frontend-tests]
|
||||
env:
|
||||
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:
|
||||
- name: Checkout repository
|
||||
run: |
|
||||
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
|
||||
|
||||
- name: Sync runtime compose file
|
||||
run: |
|
||||
mkdir -p /volume1/docker/nas-dashboard
|
||||
cp dashboard/docker-compose.dev.yml /volume1/docker/nas-dashboard/docker-compose.dev.yml
|
||||
ssh nasts "mkdir -p /volume1/docker/nas-dashboard"
|
||||
scp dashboard/docker-compose.dev.yml "nasts:/volume1/docker/nas-dashboard/docker-compose.dev.yml"
|
||||
|
||||
- name: Deploy dev
|
||||
env:
|
||||
@@ -213,23 +208,20 @@ jobs:
|
||||
GITEA_DB_PASSWORD: ${{ secrets.GITEA_DB_PASSWORD }}
|
||||
run: |
|
||||
set -u
|
||||
DOCKER="/volume1/@appstore/ContainerManager/usr/bin/docker"
|
||||
COMPOSE="/usr/lib/docker/cli-plugins/docker-compose"
|
||||
DOCKER="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker"
|
||||
COMPOSE="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker-compose"
|
||||
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
|
||||
$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
|
||||
$DOCKER network create nas-dashboard_internal
|
||||
fi
|
||||
|
||||
# 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
|
||||
echo "Compose failed to create container..."
|
||||
@@ -246,7 +238,7 @@ jobs:
|
||||
|
||||
- name: Wait for container to be healthy
|
||||
run: |
|
||||
DOCKER="/volume1/@appstore/ContainerManager/usr/bin/docker"
|
||||
DOCKER="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker"
|
||||
echo "Waiting for container to be healthy..."
|
||||
for i in {1..30}; do
|
||||
STATUS=$($DOCKER inspect --format='{{.State.Health.Status}}' nas-dashboard-dev 2>/dev/null || echo "starting")
|
||||
@@ -266,7 +258,7 @@ jobs:
|
||||
|
||||
- name: Run smoke tests
|
||||
run: |
|
||||
DOCKER="/volume1/@appstore/ContainerManager/usr/bin/docker"
|
||||
DOCKER="ssh nasts /volume1/@appstore/ContainerManager/usr/bin/docker"
|
||||
echo "=== Running smoke tests via docker exec ==="
|
||||
|
||||
# Test 1: Health check
|
||||
|
||||
Reference in New Issue
Block a user