enter image description here
图像:节点:13.14.0
缓存:
路径:
- node_modules/
阶段:
before_script:
检查 ssh-agent + rsync 如果不存在则安装
- "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
- "which rsync || ( apt-get update -y && apt-get install rsync -y )"
- eval $(ssh-agent -s)
注入遥控器的私钥
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -> /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
将密钥扫描输出附加到已知主机
- ssh-keyscan $SERVER_IP >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- 纱线
- 纱线构建
部署:
阶段:部署
脚本:
- rsync -avuz --exclude=".*" $CI_PROJECT_DIR/dist/ $SERVER_USER@$SERVER_IP:/var/www/heavenya/
# 非交互式 ssh 优雅地重新加载服务器
- ssh $SERVER_USER@$SERVER_IP '。 /etc/profile; pm2重新加载所有'
只要:
# 仅从生产分支触发部署
- 大师