diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 1fc3b0b..731939f 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -10,10 +10,26 @@ jobs: runs-on: - ubuntu-latest - self-hosted + env: + PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin steps: - - name: Prepare workspace + - name: Verify tools (node/npm/git) run: | - rm -rf /tmp/volunteer-deploy && mkdir -p /tmp/volunteer-deploy && cd /tmp/volunteer-deploy + echo "PATH=$PATH" + set -e + which git + node -v + npm -v + which curl + which ssh || true + which ssh-keygen || true + ls -la /usr/local/bin/ | grep -E 'node|npm|npx' || true + + - name: Prepare workspace + working-directory: /tmp + run: | + rm -rf volunteer-deploy + mkdir -p /tmp/volunteer-deploy - name: Checkout (git) working-directory: /tmp/volunteer-deploy @@ -84,6 +100,7 @@ jobs: chmod 600 ~/.ssh/deploy_key printf 'Host *\n StrictHostKeyChecking no\n UserKnownHostsFile /dev/null\n IdentityFile ~/.ssh/deploy_key\n' > ~/.ssh/config chmod 600 ~/.ssh/config + ssh -V - name: Deploy via SSH env: @@ -93,10 +110,11 @@ jobs: working-directory: /tmp/volunteer-deploy run: | PORT="${SSH_PORT:-22}" + echo "Deploy target: $SSH_USER@$SSH_HOST:$PORT" ssh -p $PORT $SSH_USER@$SSH_HOST "mkdir -p /opt/volunteer/app /opt/volunteer/data" scp -P $PORT -r deploy-pkg/app/* $SSH_USER@$SSH_HOST:/opt/volunteer/app/ scp -P $PORT deploy-pkg/docker-compose.yml $SSH_USER@$SSH_HOST:/opt/volunteer/docker-compose.yml - ssh -p $PORT $SSH_USER@$SSH_HOST "cd /opt/volunteer && (docker compose down || true) && docker compose up -d --force-recreate && sleep 3 && docker compose ps" + ssh -p $PORT $SSH_USER@$SSH_HOST "cd /opt/volunteer && (docker compose down || docker-compose down || true) && (docker compose up -d --force-recreate || docker-compose up -d --force-recreate) && sleep 3 && (docker compose ps || docker-compose ps)" - name: Health check env: @@ -105,5 +123,5 @@ jobs: SSH_USER: ${{ secrets.SSH_USER }} run: | PORT="${SSH_PORT:-22}" - ssh -p $PORT $SSH_USER@$SSH_HOST "for i in 1 2 3 4 5 6 7 8; do if curl -fsS http://localhost:3000/u > /dev/null; then echo 'Service OK'; exit 0; fi; echo Wait...; sleep 3; done; echo 'Service FAIL'; exit 1" + ssh -p $PORT $SSH_USER@$SSH_HOST "for i in 1 2 3 4 5 6 7 8 9 10; do if curl -fsS http://localhost:3000/u > /dev/null; then echo 'Service OK'; exit 0; fi; echo Wait...; sleep 3; done; echo 'Service FAIL'; exit 1"