Skip to main content

通过 Gitlab Pipeline 进行 CICD

配置使用 Gitlab runner

Gitlab runner 介绍

GitLab Runner是GitLab CI/CD系统中的一个组件,它负责执行构建和部署任务。
主要功能包括:

  1. 执行构建任务: 当开发者提交代码时,GitLab Runner负责执行CI/CD流水线中定义的构建任务,例如编译代码、运行测试等。
  2. 并行执行: GitLab Runner支持并行执行多个任务,这有助于提高构建和测试的效率。
  3. 多平台支持: 它可以在不同的操作系统和环境中运行,例如Linux、macOS、Windows等,从而满足不同项目的需求。
  4. Docker支持: GitLab Runner可以与Docker集成,使构建和部署过程更加轻量和可移植。
  5. 持续交付: GitLab Runner通过执行CI/CD流水线中的任务,支持自动化持续集成和交付流程,使团队能够更快地将软件交付到生产环境中。

安装 Gitlab runner (CentOS 7.9)

由于 Gitlab runner 是运行在自己的服务器上,所以需要在自己的服务器上安装依赖

curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/rpm/gitlab-runner_amd64.rpm"
rpm -i gitlab-runner_amd64.rpm
gitlab-runner start

详细安装信息请参考 https://docs.gitlab.com/runner/install/

注册 Gitlab runner(CentOS 7.9)

获取 registration token

在项目页面中,选择 Settings -> CI/CD -> Runners, 在这里获取 URL 和 token

执行注册指令

gitlab-runner register \
--non-interactive \
--url "$GITLAB_URL" \
--token "$RUNNER_TOKEN" \
--executor "docker" \
--docker-image alpine:latest \
--description "docker-runner"

成功以后可以在项目 Runners 页面看到刚注册的 Gitlab runner

异常情况

  1. 在 Gitlab runner 运行时出现 no permitted 权限问题
    找到 gitlab-runner的配置文件,一般在 /etc/gitlab-runner/config.toml, 找到对应的 gitlab runner 配置, 将 privileged = false 修改 privileged = true, 重新启动。
gitlab-runner restart

编写 .gitlab-ci.yml

.gitlab-ci.yml 介绍

.gitlab-ci.yml 是GitLab CI/CD的配置文件,用于定义项目的持续集成和持续交付(CI/CD)流水线。这个文件采用YAML(YAML Ain't Markup Language)格式,以清晰且易读的方式描述了构建、测试、部署等任务的执行步骤和规则。

基本结构和内容

一个简单的.gitlab-ci.yml文件可能包含以下部分:

stages:
- build
- test
- deploy

variables:
APP_NAME: "my-app"

before_script:
- echo "Setting up environment..."

build:
stage: build
script:
- echo "Building the application..."

test:
stage: test
script:
- echo "Running tests..."

deploy:
stage: deploy
script:
- echo "Deploying to production..."
only:
- master

  • stages 部分定义了流水线的阶段,每个阶段包含一个或多个任务。
  • variables 部分用于定义全局变量,可以在整个流水线中使用。
  • before_script 部分包含在每个任务执行之前运行的脚本。
  • build, test, 和 deploy 是具体的任务,每个任务包含一个或多个脚本命令。