来学习下gitlab配置自动化部署

1,467 阅读3分钟

这是我参与8月更文挑战的第23天,活动详情查看:8月更文挑战

前言

之前我们项目有很多个分支,然后要根据不同的分支进行合并,然后打包。有时候项目急,就会出现代码打包部署了,但是忘了把代码提交到gitlab;导致别的同事又打包的时候,由于gitlab上你之前打包的代码没有提交,导致同事没有把你的代码被打包进去的情况。

这种场景很常见,你总不能时时刻刻都记得先提交到gitlab,再合并代码,最后再打包部署的流程。

这应该怎么解决?

没错,引入我们今天要讲的内容,gitlab配置自动化部署

配置自动化部署后,正常我们就不用管打包部署的环节,我们只需要把代码提交的gitlab上,gitlab自动会帮我们打包。

gitlab配置自动化部署

在配置之前,我们先了解几个概念:

  • gitlab设置自动化部署是通过它的CI(持续集成)/CD(持续交付)选项。
  • gitlab项目根目录下需要新建文件.gitlab-ci.yml,这个文件是自动化部署的配置文件,通过这个配置文件我们可以实现安装依赖/打包/部署等操作。
  • 对于.gitlab-ci.yml配置的任务,gitlab会通知gitlab-runner这个软件来执行构建该任务。
  • Pipeline和job,每一次git提交对应的是一个Pipeline,job 组成 Pipeline, .gitlab-ci.yml里面配有多少个任务(stages),就代表着一个Pipeline里面有多少个job

过程

下载gitlab-runner

我是window版本,新建一个文件夹(我命名为gitlab-runner),下载gitlab-runner安装包,选择你的兼容版本(64位还是32位),把安装包下载到该目录。

在该目录下起一个powerShell/或者cmd(注意是要管理员模式,不然没有权限)

安装和注册gitlab-runner

powerShell运行.\gitlab-runner.exe install, cmd运行gitlab-runner install(下面我以powerShell的命令做演示)

安装好会生成一个config.toml,gitlab-runner的配置会存在该文件中。

然后执行.\gitlab-runner.exe register注册

按照步骤一一填写:

  • Enter the GitLab instance URL (for example, gitlab.com/): 输入你的gitlab地址
  • Enter the registration token: 这个token是你gitlab项目的token,点击setteings-> CI/CD ->Runners settings,看到Specific Runners,下面有个标红的token。
  • Enter a description for the runner: runner的描述
  • Enter tags for the runner (comma-separated): 这里我跳过,不填,如果你填了这个,.gitlab-ci.yml里面的任务也要配这个tag,不然不会执行。
  • Enter an executor: custom, ssh, virtualbox, docker-ssh+machine, kubernetes, docker+machine, docker, docker-windows, docker-ssh, parallels, shell: 选择一个执行器,这里我选的是shell,就是gitlab-runner在哪个执行器上运行(执行器你也可以选择docker等等)
  • 注册成功

然后你可以看到在setteings-> CI/CD ->Runners settings->Specific Runners下面有一个注册的runner的展示

image.png

运行

.\gitlab-runner.exe start 启动

其它指令:

  • .\gitlab-runner.exe stop 暂停
  • .\gitlab-runner.exe status runner的状态

提交

我的.gitlab-ci.yml文件配置(注意该文件要在项目根目录下):

# before_script: # 因为每次stage都是独立的,需要重新安装依赖,这里选择要把依赖缓存起来
cache:
  key: ${CI_COMMIT_REF_SLUG}
  untracked: true
  paths:
    - node_modules/ # 缓存node_modules
before_script:
  - yarn install --frozen-lockfile --prefer-offline 

stages:
  - install
  - build

install: 
  stage: install
  tags: 
    - test
  script:
    - yarn

install: 
  stage: build
  tags: 
    - test
  script: 
    - yarn run build
      

然后我们在gitlab测试

提交代码后,自动开启构建,如下

运行中

image.png

构建成功

image.png

遇到的问题

  • config.toml文件生成后,runner的配置都会存在里面,因为我执行器选择的shell,但是它生成的shell是"pwsh",所以要改成powershell

总结

以上就是总结的gitlab配置自动化部署,大家可以按照我这个教程来部署,有问题欢迎评论沟通。

感谢你们的阅读。