Vue
之类的开发,都需要编译,然后生成编译后的文件,然后打包发布,往往需要好几个步骤,那么我们是否可以让它自动进行,不需要我们人为参与呢?
当然是可以的,借助 CI/CD
工具,我们可以实现自动编译,自动部署。免去人为的干预。
这里使用 gitlab
仓库与 gitlab runner
,搭建方式可以参考 gitlab仓库搭建
我们需要将gitlab
仓库与 gitlab runner
配好,然后在项目的设置里面:设置=>CI/CD=>变量 里添加变量,例如这里需要的 ssh 私钥
、用户名和服务器地址
、服务器路径
:
分别配置 :
- SSH_PRIVATE_KEY (ssh 私钥)
- SERVER_USER_HOST (用户名和服务器地址 例如:user@localhost)
- SERVER_MASTER_PATH (服务器路径 例如:/var/www/html/vue)
注意:千万千万不要写错变量名
然后为 项目添加 CI/CD
配置:
.gitlab-ci.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| image: node:10-alpine
stages: - build - deploy
cache: key: ${CI_COMMIT_REF_NAME} paths: - node_modules/
job-build: stage: build only: - master - dev
script: - npm set registry https://registry.npm.taobao.org - npm install --progress=false - npm run build artifacts: expire_in: 1 week paths: - dist image: node:10-alpine
stages: - build
cache: key: ${CI_COMMIT_REF_NAME} paths: - node_modules/
job-deploy: stage: deploy only: - master
script: - echo "http://mirrors.aliyun.com/alpine/v3.9/main/" > /etc/apk/repositories - apk add --no-cache rsync openssh - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa - chmod 600 ~/.ssh/id_dsa - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - - rsync -rav dist/ "$SERVER_USER_HOST:$SERVER_MASTER_PATH"
|
接下来就可以推送,然后在 gitlab 里面查看进度。