gitlab
, 請直接跳到第6條。CI/CD
咱們平時會使用一些CI/CD
持續集成, 好比上傳到gitlab
上的dev
分支代碼每次更新, 但這些功能可不是CI
來作的, 咱們都會直接進行打包併發布到測試環境, 那麼接下來咱們就來配置這個功能模塊。html
gitlab-runner
執行構建任務是很消耗性能的, 因此gitlab
單獨使用gitlab-runner
這種形式來獨立的構建項目, 因此其實gitlab
提供了一個接口, 能夠對應多個runner
, 不一樣的項目能夠用不一樣的runner
構建。vue
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
容器裏面的配置作一個映射。node
docker exec -it 容器id gitlab-runner register
意思就是我要去某個鏡像內部執行gitlab-runner register
git
上面的容器id用下面的命令查看docker
docker container ps -a
註冊命令執行的時候會讓咱們填寫Url
與Token
,這個參數在圖裏找:shell
或者打開一個項目:數據庫
runner
。node
之類的了, 不用shell
, 直接選用docker
。runner
咱們先來查看一下被激活的runner
。
這裏的tag就是剛纔初始化時候設置的。vim
默認runner
docker exec -it gitlab_lulu bash vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
如今能夠正確訪問到了:後端
yml
文件試一下隨便建一個vue
工程api
image: node cache: paths: - node_modules/ install: tags: - tag1 script: - echo 1111
gitlab
模塊這個庫挺少用的, 文檔也都是英文的, 一會會講如何學習它。
yarn add @gitbeaker/node
gitlab
模塊nest g controller modules/gitlab nest 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文檔
好比這個新建標籤
查看他的參數設置, options
裏面通常就是要傳遞的參數。
這個ref能夠理解爲惟一標籤, 因此它能夠是commitID
:
接下來咱們要進行數據庫的相關操做了, 若是你沒作事後端相關項目可要仔細看了, 裏面涉及到typeorm如何處理多對多與多對一等關係, 我會把我遇到的坑與心得體會所有展現給你, 但願和你一塊兒進步。