写给初用Nestj作项目的你(第二篇: 配置gitlab-runner&操做gitlab)

写给初用Nestj作项目的你(第二篇: 配置gitlab-runner&操做gitlab)

若是不想本身搭建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 registergit

上面的容器id用下面的命令查看docker

docker container ps -a

image.png

注册填写信息

注册命令执行的时候会让咱们填写UrlToken,这个参数在图里找:
image.pngshell

或者打开一个项目:数据库

image.png

  • 设置标签
    image.png
    你能够理解成是设置一个别名, 方便咱们以后管理与调用这个runner
  • 设置环境
    image.png
    这里就不配置了node之类的了, 不用shell, 直接选用docker
  • 设置默认镜像
    image.png

三. 配置runner

咱们先来查看一下被激活的runner
image.png
这里的tag就是刚才初始化时候设置的。vim

设置其为默认runner

image.png

image.png

四. 拉取项目的地址进行校订(配置gitlab)

进入咱们的容器内
docker exec -it gitlab_lulu bash 

vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

image.png

如今能够正确访问到了:
image.png后端

五. 上传一个yml文件试一下

随便建一个vue工程api

image: node

cache:
  paths:
    - node_modules/

install:
  tags:
    - tag1
  script:
    - echo 1111

image.png

六. 初始一个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列表'
    }
}

效果以下:
image.png

七. 使用@gitbeaker/node操做gitlab: 获取全部的tag

/share/src/modules/gitlab/gitlab.service.ts

第一步 获取token

     有了token才能有权利访问一些项目, 把权限都开启, 而且设置失效时间。
image.png

image.png

复制你的令牌放到项目中。

image.png

第二步 new 一个api实例

image.png

image.png

第三步 打上标签试一下

image.png

image.png

八. 如何学习使用@gitbeaker/node

第一步: 查询想要的api

在这里搜索你想要的关键词, api文档
image.png

第二步: 点进去找你想要的操做

好比这个新建标签

image.png

第三步: 通常这个操做名就是方法名

查看他的参数设置, options里面通常就是要传递的参数。

image.png

第四步: 调用方法

image.png

这个ref能够理解为惟一标签, 因此它能够是commitID:

image.png

第五步: 查看结果

image.png

image.png

end.

     接下来咱们要进行数据库的相关操做了, 若是你没作事后端相关项目可要仔细看了, 里面涉及到typeorm如何处理多对多与多对一等关系, 我会把我遇到的坑与心得体会所有展现给你, 但愿和你一块儿进步。

相关文章
相关标签/搜索