- 安装runner环境,启动runner
- 注册一个runner
- 配置YML文件
GitLab
GitLab的CICD是一个强大的持续集成和持续部署的工具,结合Sonar,可以做到代码merge自动检测复杂度和异常指标,可以做到异常代码不允许merge。
结合Sentry,可以做到将版本和源码映射发布到sentry,以便于sentry报警可以方便定位到源码位置和有问题的发布版本。
Pipeline
流水线,将集成部署分为了一个个小任务,组成了一条流水线,我们可以使用YML文件自定义流水线的每个环节。
runner
每个子任务都需要一个运行环境,多个子任务可以共享一个运行环境,这个环境就是runner。 要将流水线跑起来,我们需要安装runner,注册runner,并将子任务放在runner上去运行。
新建runner
位于项目设置-CICD-Runner
新建runner
GitLab中的runner分为两种主要类型:组runner和项目runner。它们的主要区别在于适用范围和管理方式。
项目runner(Project runner):
仅适用于特定的单个项目 由项目维护者管理 更加灵活,可以针对特定项目需求进行定制 适合有特殊CI/CD需求的项目
组runner(Group runner):
可以被整个组内的所有项目共享使用 由组管理员管理 提供更好的资源利用率,适合多个相似项目 便于统一管理和维护
主要区别:
适用范围:
项目runner只能被单个项目使用
组runner可以被整个组内的多个项目共享使用
管理权限:
项目runner由项目维护者管理
组runner由组管理员管理
资源利用:
组runner可以更有效地利用资源,避免重复配置
项目runner可能导致资源浪费,特别是当多个项目需要相似配置时
配置灵活性:
项目runner允许更精细的项目特定配置
组runner提供了更统一的配置,适合标准化的CI/CD流程
安全性:
项目runner可以更好地隔离敏感项目
组runner在共享环境中运行,可能需要额外的安全考虑
选择建议:
如果有多个项目使用相似的CI/CD配置,使用组runner可能更有效率 对于有特殊需求或敏感的项目,可以考虑使用项目runner 大型组织可能会同时使用两种类型的runner,以平衡效率和灵活性
- 勾选上-运行未打标签的任务。
注册runner见注册runner
根据runner的运行平台,先安装一个runner,以Linux为例:
使用极狐GitLab Runner 10,可执行文件重命名为 gitlab-runner。
-
为您的系统下载二进制文件:
# Linux x86-64 sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-amd64" # Linux x86 sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-386" # Linux arm sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-arm" # Linux arm64 sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-arm64" # Linux s390x sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-s390x" # Linux ppc64le sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-ppc64le" # Linux x86-64 FIPS Compliant sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.gitlab.cn/latest/binaries/gitlab-runner-linux-amd64-fips"您可以为每个前沿-下载其他标签发布中描述的可用版本下载二进制文件。
-
授权执行:
sudo chmod +x /usr/local/bin/gitlab-runner -
创建极狐GitLab CI 用户:
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash -
安装并作为服务运行:
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start确保您在
$PATH中拥有/usr/local/bin/进行 root 操作,否则可能会出现command not found错误。 或者,您可以在其他位置安装gitlab-runner,比如/usr/bin/。
单个命令:
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--token "$RUNNER_TOKEN" \
--executor "docker" \
--docker-image alpine:latest \
--description "docker-runner"
配置YML文件(示例,具体可以看官方文档)
sonarqube-check:
image:
name: sonarsource/sonar-scanner-cli:latest
entrypoint: [""]
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # 缓存SonarQube插件
cache:
key: "${CI_JOB_NAME}"
paths:
- .sonar/cache
script:
- sonar-scanner
-Dsonar.projectKey=projectKey
-Dsonar.sources=.
-Dsonar.host.url=url
-Dsonar.login=${SONAR_TOKEN}
-Dsonar.scanner.timeoutSeconds=300
allow_failure: true
only:
- merge_requests
- sunshu_cicd_build