我在gitlab.com上拥有用于gitlab存储库的.gitlab-ci.yml文件,以使用gitlab CI / CD构建和部署vue应用程序:
image: node:latest
cache:
paths:
- node_modules/
before_script:
- apt-get update -qq && apt-get install -y -qq sshpass
build_deploy_stage:
stage: build
environment: Staging
only:
- master
script:
- rm ./package-lock.json
- npm install
- node -v
- npm run build
- ls
- sshpass -V
- export SSHPASS=$USER_PASS
- sshpass -e scp -o stricthostkeychecking=no -r dist user@example.com:~/myapp
部署后,我想在commmand下运行,好像我已远程登录(ssh user@example.com):
$ pm2重新启动myapp
$ cp〜/ myfiles / file1〜/ backup / myfiles / file1.bk
如何将上述命令添加到.gitlab-ci.yml中?
推荐的方法是将ssh与公共私钥一起使用,而不是sshpass。使用ssh密钥对并登录到远程主机(example.com)并从gitlab CI / CD运行器中在远程主机上运行命令的解决方案是什么?