CI&CD
修改.gitlab-ci.yml文件,内容如下:
stages:
- build
- deploy
before_script:
- pwd
- ls
build:
script:
- yarn
- tsc
- "cp -r dist /data/sites/koa-server"
- "cp -r package.json /data/sites/koa-server"
- "cp -r node_modules /data/sites/koa-server"
stage: build
deploy:
script:
- "[ -d /data/sites/koa-server ] && echo ok || mkdir -p /data/sites/koa-server" ## 用来判断目录是否存在,不存在则创建
- "pm2 start /data/sites/koa-server/dist/index.js" ## 使用pm2启动服务
stage: deploy
这个文件比上篇文章中的感觉要复杂多了,我们来看下这里面都有哪些东西。
首先一开始,定义了stages,这个用来定义你的CI执行的时候,有几个stage,这里我们定义了两个stage,一个是build,一个是deploy。这个应该很好理解,先构建然后部署,对吧。期中build和deploy是stage的名称,这个是自定义的。
接下来是before_script,在这里定义的所有script,会在stages中的所有script运行之前执行。
接下来,我们定义了两个job,注意,这里build和deploy名称不需要和上面的stage相同。
在job定义的时候,需要使用stage指定关联的stage是哪个。
简单来说就是,你先定义stage,然后定义job,然后在job指定stage,这样在运行的时候,才知道每个stage需要运行哪些job。
然后看下运行的效果:
效果
写好ci文件之后,提交到gitlab服务器。看下运行效果:
等这里完成之后,打开浏览器访问: mygitlab.com:3000/users
结果: