ci(deploy): 修复PATH问题→jobs.env.PATH显式加/usr/local/bin;新增Step0 Verify tools打印node/npm version定位;Deploy同时兼容docker compose和docker-compose旧语法;Health check重试10次
Deploy to Server / deploy (push) Failing after 1s
Deploy to Server / deploy (push) Failing after 1s
This commit is contained in:
@@ -10,10 +10,26 @@ jobs:
|
|||||||
runs-on:
|
runs-on:
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- self-hosted
|
- self-hosted
|
||||||
|
env:
|
||||||
|
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare workspace
|
- name: Verify tools (node/npm/git)
|
||||||
run: |
|
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)
|
- name: Checkout (git)
|
||||||
working-directory: /tmp/volunteer-deploy
|
working-directory: /tmp/volunteer-deploy
|
||||||
@@ -84,6 +100,7 @@ jobs:
|
|||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
printf 'Host *\n StrictHostKeyChecking no\n UserKnownHostsFile /dev/null\n IdentityFile ~/.ssh/deploy_key\n' > ~/.ssh/config
|
printf 'Host *\n StrictHostKeyChecking no\n UserKnownHostsFile /dev/null\n IdentityFile ~/.ssh/deploy_key\n' > ~/.ssh/config
|
||||||
chmod 600 ~/.ssh/config
|
chmod 600 ~/.ssh/config
|
||||||
|
ssh -V
|
||||||
|
|
||||||
- name: Deploy via SSH
|
- name: Deploy via SSH
|
||||||
env:
|
env:
|
||||||
@@ -93,10 +110,11 @@ jobs:
|
|||||||
working-directory: /tmp/volunteer-deploy
|
working-directory: /tmp/volunteer-deploy
|
||||||
run: |
|
run: |
|
||||||
PORT="${SSH_PORT:-22}"
|
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"
|
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 -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
|
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
|
- name: Health check
|
||||||
env:
|
env:
|
||||||
@@ -105,5 +123,5 @@ jobs:
|
|||||||
SSH_USER: ${{ secrets.SSH_USER }}
|
SSH_USER: ${{ secrets.SSH_USER }}
|
||||||
run: |
|
run: |
|
||||||
PORT="${SSH_PORT:-22}"
|
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"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user