写给初用Nestj做我的项目的你(第二篇: 配置gitlab-runner&操作gitlab)
如果不想本人搭建gitlab
, 请间接跳到第6条。
一. CI/CD
咱们平时会应用一些CI/CD
继续集成, 比方上传到gitlab
上的dev
分支代码每次更新, 但这些性能可不是CI
来做的, 咱们都会间接进行打包并公布到测试环境, 那么接下来咱们就来配置这个功能模块。
二. gitlab-runner
执行构建工作是很耗费性能的, 所以gitlab
独自应用gitlab-runner
这种模式来独立的构建我的项目, 所以其实gitlab
提供了一个接口, 能够对应多个runner
, 不同的我的项目能够用不同的runner
构建。
第一步: 拉取
docker pull gitlab/gitlab-runner
第二步: 运行
docker run -d --name gitlab-runner --restart always \ -v ~/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner
下面是对docker
容器外面的配置做一个映射。
第三步: 注册
docker exec -it 容器id gitlab-runner register
意思就是我要去某个镜像外部执行gitlab-runner register
下面的容器id用上面的命令查看
docker container ps -a
注册填写信息
注册命令执行的时候会让咱们填写Url
与Token
,这个参数在图里找:
或者关上一个我的项目:
- 设置标签
你能够了解成是设置一个别名, 不便咱们之后治理与调用这个runner
。 - 设置环境
这里就不配置了node
之类的了, 不必shell
, 间接选用docker
。 - 设置默认镜像
三. 配置runner
咱们先来查看一下被激活的runner
。
这里的tag就是方才初始化时候设置的。
设置其为默认runner
四. 拉取我的项目的地址进行校对(配置gitlab)
进入咱们的容器内
docker exec -it gitlab_lulu bash vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
当初能够正确拜访到了:
五. 上传一个yml
文件试一下
轻易建一个vue
工程
image: nodecache: paths: - node_modules/install: tags: - tag1 script: - echo 1111
六. 初始一个gitlab
模块
这个库挺少用的, 文档也都是英文的, 一会会讲如何学习它。
装置
yarn add @gitbeaker/node
生成gitlab
模块
nest g controller modules/gitlabnest g service modules/gitlab
简略配置一下
/share/src/modules/gitlab/gitlab.controller.ts
import { Controller, Get } from '@nestjs/common';import { GitlabService } from './gitlab.service';@Controller('gitlab')export class GitlabController { constructor( private readonly gitlabService: GitlabService ) { } @Get() getTags() { return this.gitlabService.getTags(); }}
/share/src/modules/gitlab/gitlab.service.ts
import { Injectable } from '@nestjs/common';@Injectable()export class GitlabService { getTags() { return 'tags列表' }}
成果如下:
七. 应用@gitbeaker/node
操作gitlab
: 获取所有的tag
/share/src/modules/gitlab/gitlab.service.ts
第一步 获取token
有了token
能力有权力拜访一些我的项目, 把权限都开启, 并且设置生效工夫。
复制你的令牌放到我的项目中。
第二步 new
一个api实例
第三步 打上标签试一下
八. 如何学习应用@gitbeaker/node
第一步: 查问想要的api
在这里搜寻你想要的关键词, api文档
第二步: 点进去找你想要的操作
比方这个新建标签
第三步: 个别这个操作名就是办法名
查看他的参数设置, options
外面个别就是要传递的参数。
第四步: 调用办法
这个ref能够了解为惟一标签, 所以它能够是commitID
:
第五步: 查看后果
end.
接下来咱们要进行数据库的相干操作了, 如果你没做过后端相干我的项目可要认真看了, 外面波及到typeorm如何解决多对多与多对一等关系, 我会把我遇到的坑与心得体会全副展现给你, 心愿和你一起提高。