当前位置: 首页 > 后端技术 > Node.js

写给刚开始使用Nestj做项目的人(第二部分:配置gitlab-runner&操作gitlab)

时间:2023-04-03 23:44:14 Node.js

写给刚开始使用Nestj做项目的你(第二部分:配置gitlab-runner&操作gitlab)如果你不想自己搭建gitlab的,请直接跳到第6条。1.CI/CD我们平时会用到一些CI/CD持续集成,比如上传到gitlab的dev分支代码每次都会更新,但是这些功能不是CI完成后,我们直接打包发布到测试环境,接下来我们就对这个功能模块进行配置。2.gitlab-runner执行构建任务非常消耗性能,所以gitlab单独使用gitlab-runner来独立构建项目,所以实际上gitlab提供了一个可以对应多个runner的接口,不同的项目可以使用不同的runner构建。第一步:拉取dockerpullgitlab/gitlab-runner第二步:运行dockerrun-d--namegitlab-runner--restartalways\-v~/gitlab-runner/config:/etc/gitlab-runner\-v/var/run/docker.sock:/var/run/docker.sock\gitlab/gitlab-runner以上是docker容器中配置的映射。第三步:注册dockerexec-itcontaineridgitlab-runnerregister意思是我要在某个镜像里面执行gitlab-runnerregister上面的容器id,使用下面的命令查看dockercontainerps-aregister并填写信息执行注册命令有时我们会填写Url和Token。找到图中这个参数:或者打开一个项目:设置label,可以理解为设置一个别名,方便我们后面管理和调用这个runner。搭建环境这里不配置node之类的,不用shell,直接用docker。设置默认图像3.配置运行器让我们先检查激活的运行器。这里的标签只是在初始化时设置的。设置为默认runner4.拉取项目地址进行校正(configuregitlab),进入我们的容器dockerexec-itgitlab_lulubashvim/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.ymlisnowavailable正确访问:5.上传一个yml文件,随便建一个vue项目试试image:nodecache:paths:-node_modules/install:tags:-tag1script:-echo11116.最初是一个gitlab的模块这个库很少见用过的,文档也是英文的,以后再说怎么学。安装yarnadd@gitbeaker/node生成gitlab模块nestgcontrollermodules/gitlabnestgservicemodules/gitlab只需配置/share/src/modules/gitlab/gitlab.controller.tsimport{Controller,Get}from'@nestjs/common';从'./gitlab.service'导入{GitlabService};@Controller('gitlab')exportclassGitlabController{constructor(privatereadonlygitlabService:GitlabService){}@Get()getTags(){returnthis.gitlabService.getTags();}}/share/src/modules/gitlab/gitlab.service.tsimport{Injectable}from'@nestjs/common';@Injectable()exportclassGitlabService{getTags(){return'tagslist'}}效果如下如下:7。使用@gitbeaker/node操作gitlab:获取所有标签/share/src/modules/gitlab/gitlab.service.ts第一步获取token有了token,就可以访问一些项目,开启权限,并设置过期时间。将您的令牌复制到项目中。第二步是创建一个api实例。第三步是贴标签。试试看。八。如何学习使用@gitbeaker/node第一步:查询想要的api在这里搜索你想要的关键字,api文档第二步:点击进入找到你想要的操作,比如这个新建标签。第三步:一般操作的名称就是方法名。检查其参数设置。选项通常包含要传递的参数。第四步:调用方法。这个ref可以理解为一个唯一的标签,所以可以是一个commitID:第五步:检查结果结束。看,涉及到typeorm如何处理多对多和多对一的关系。我会把我遇到的所有坑和经验都告诉你,希望能和你一起进步。