You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.3 KiB
46 lines
2.3 KiB
kind: pipeline
|
|
type: exec
|
|
name: deploy
|
|
clone:
|
|
disable: true
|
|
|
|
trigger:
|
|
branch:
|
|
- deploy
|
|
event:
|
|
- push
|
|
|
|
steps:
|
|
- name: deploy
|
|
environment:
|
|
DEPLOY_SSH_KEY:
|
|
from_secret: DEPLOY_SSH_KEY
|
|
DATABASE_URL:
|
|
from_secret: DATABASE_URL
|
|
STATIC_DIR:
|
|
from_secret: STATIC_DIR
|
|
TMP_DIR:
|
|
from_secret: TMP_DIR
|
|
NUXT_PUBLIC_SITE_URL:
|
|
from_secret: NUXT_PUBLIC_SITE_URL
|
|
BOOTSTRAP_ADMIN_USERNAME:
|
|
from_secret: BOOTSTRAP_ADMIN_USERNAME
|
|
BOOTSTRAP_ADMIN_PASSWORD:
|
|
from_secret: BOOTSTRAP_ADMIN_PASSWORD
|
|
commands:
|
|
- export HOME=/root
|
|
- mkdir -p "$HOME/.ssh"
|
|
- chmod 700 "$HOME/.ssh"
|
|
- 'printf "%s\n" "$DEPLOY_SSH_KEY" > "$HOME/.ssh/id_rsa"'
|
|
- chmod 600 "$HOME/.ssh/id_rsa"
|
|
- 'ssh-keyscan -p 8892 -H git.xieyaxin.top >> "$HOME/.ssh/known_hosts"'
|
|
- chmod 644 "$HOME/.ssh/known_hosts"
|
|
- 'export SSH_OPTS="-i $HOME/.ssh/id_rsa -o IdentitiesOnly=yes -o UserKnownHostsFile=$HOME/.ssh/known_hosts -o StrictHostKeyChecking=accept-new -o BatchMode=yes -o ConnectTimeout=10 -o ServerAliveInterval=15 -o ServerAliveCountMax=3"'
|
|
- 'ssh $SSH_OPTS -T -p 8892 root@git.xieyaxin.top || true'
|
|
- 'REPO_DIR="$HOME/projects/nuxt4-demo/nuxt4-demo"; PROD_DIR="$HOME/projects/nuxt4-demo/production-dist"; if [ -d "$REPO_DIR/.git" ]; then GIT_SSH_COMMAND="ssh $SSH_OPTS" git -C "$REPO_DIR" fetch origin deploy && git -C "$REPO_DIR" checkout -B deploy origin/deploy && git -C "$REPO_DIR" reset --hard origin/deploy && git -C "$REPO_DIR" clean -fdx; else rm -rf "$REPO_DIR" && mkdir -p "$(dirname "$REPO_DIR")" && GIT_SSH_COMMAND="ssh $SSH_OPTS" git clone --depth 1 -b deploy "ssh://root@git.xieyaxin.top:8892/topuser/nuxt4-demo.git" "$REPO_DIR"; fi'
|
|
- '[ -f "$REPO_DIR/build-output.tar.gz" ] || { echo "build-output.tar.gz not found in $REPO_DIR"; exit 1; }'
|
|
- 'rm -rf "$PROD_DIR" && mkdir -p "$PROD_DIR"'
|
|
- 'tar -xzf "$REPO_DIR/build-output.tar.gz" -C "$PROD_DIR"'
|
|
- 'bash -lc "cd $HOME/projects/nuxt4-demo/production-dist && pm2 stop nuxt4-demo || true"'
|
|
- 'bash -lc "cd $HOME/projects/nuxt4-demo/production-dist && pm2 delete nuxt4-demo || true"'
|
|
- 'bash -lc "cd $HOME/projects/nuxt4-demo/production-dist && pm2 start ./run.sh --name nuxt4-demo"'
|