通过 Gitlab Pipeline 进行 CICD
配置使用 Gitlab runner
Gitlab runner 介绍
GitLab Runner是GitLab CI/CD系统中的一个组件,它负责执行构建和部署任务。
主要功能包括:
- 执行构建任务: 当开发者提交代码时,GitLab Runner负责执行CI/CD流水线中定义的构建任务,例如编译代码、运行测试等。
- 并行执行: GitLab Runner支持并行执行多个任务,这有助于提高构建和测试的效率。
- 多平台支持: 它可以在不同的操作系统和环境中运行,例如Linux、macOS、Windows等,从而满足不同项目的需求。
- Docker支持: GitLab Runner可以与Docker集成,使构建和部署过程更加轻量和可移植。
- 持续交付: 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
异常情况
- 在 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
是具体的任务,每个任务包含一个或多个脚本命令。