首页 Gitlab CI/CD
文章
取消

Gitlab CI/CD

1. Gitlab CI/CD

关于CI/CD的理论概念可以查看前面这篇文章: CI/CD,详细的 gitlab ci/cd 配置可查看gitlab 官网文档

如果需要使用到gitlab ci/cd 功能,则需要在代码仓库中创建一个 .gitlab-ci.yml 配置文件,用来描述在何时 采用 什么方式 进行 持续集成和构建

.gitlab-ci.yml 简单的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 构建阶段
stages:
  - build
  - test
  - deploy

build-job:
  stage: build
  script:
    - echo "Hello, $GITLAB_USER_LOGIN!"

test-job1:
  stage: test
  script:
    - echo "This job tests something"

test-job2:
  stage: test
  script:
    - echo "This job tests something, but takes more time than test-job1."
    - sleep 20

deploy-prod:
  stage: deploy
  script:
    - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
  environment: production

x. 内置变量

  • $CI_COMMIT_REF_NAME:当前分支的名称。
  • $CI_COMMIT_SHA:提交的哈希值。
  • $CI_PIPELINE_ID:当前CI/CD流程的ID。
  • $CI_PROJECT_DIR:Git仓库的根目录。
  • $CI_PROJECT_NAME:Git仓库的名称。
  • $CI_PROJECT_NAMESPACE:Git仓库的命名空间。
  • $CI_REGISTRY_IMAGE:Docker镜像仓库的名称。
  • $CI_BUILD_ID:当前构建的ID。
  • $CI_BUILD_REF:当前构建的哈希值。
  • $CI_JOB_ID:当前Job的ID。
  • $CI_JOB_NAME:当前Job的名称。
  • $CI_JOB_STAGE:当前Job所属的Stage。
  • $CI_RUNNER_DESCRIPTION:当前Runner的描述信息。
  • $CI_RUNNER_ID:当前Runner的ID。
  • $CI_RUNNER_TAGS:当前Runner的标签。
  • $CI_COMMIT_TAG:如果当前CI/CD流程是由标签触发的,则为标签的名称。
  • $CI_COMMIT_TITLE:当前提交的标题。
  • $CI_COMMIT_MESSAGE:当前提交的消息。
  • $CI_COMMIT_TIMESTAMP:当前提交的时间戳。
  • $CI_COMMIT_AUTHOR:当前提交的作者。
  • $CI_COMMIT_EMAIL:当前提交的作者的电子邮件地址。
  • $CI_REGISTRY_USER:Docker镜像仓库的用户名。
  • $CI_REGISTRY_PASSWORD:Docker镜像仓库的密码。
  • $CI_ENVIRONMENT_NAME:当前环境的名称。
  • $CI_ENVIRONMENT_SLUG:当前环境的Slug。
  • $CI_DEPLOY_USER:当前部署的用户。
  • $CI_DEPLOY_PASSWORD:当前部署的密码。
  • $CI_RUNNER_EXECUTABLE_ARCH:当前Runner的架构类型(例如,amd64)。
  • $CI_NODE_INDEX:当前Job在集群中的索引值。
  • $CI_NODE_TOTAL:当前Job在集群中的总数。
  • $CI_SERVER_VERSION:GitLab服务器的版本号。
  • $CI_SERVER_NAME:GitLab服务器的名称。
  • $CI_SERVER_REVISION:GitLab服务器的哈希值。
  • $CI_SERVER_HOST:GitLab服务器的主机名。
  • $CI_SERVER_PORT:GitLab服务器的端口号。
  • $CI_SERVER_PROTOCOL:GitLab服务器的协议类型(http或https)。
  • $CI_JOB_MANUAL:如果当前Job是手动触发的,则为true,否则为false。
  • $RUNNER_ID:当前 Runner 的唯一标识符。
  • $RUNNER_TAGS:当前 Runner 的标签列表,可以用于选择和筛选任务。
  • $RUNNER_VERSION:当前 Runner 的版本号。
  • $RUNNER_REVISION:当前 Runner 的 Git 提交哈希值。
  • $RUNNER_EXECUTABLE_NAME:当前 Runner 的可执行文件名。
  • $RUNNER_EXECUTABLE_VERSION:当前 Runner 的可执行文件版本号。
  • $RUNNER_PROJECT_TEMP_DIR:用于访问当前 Runner 所在的临时项目目录,在执行任务时,GitLab Runner 会为每个项目创建一个临时目录,其中包含任务所需的所有文件和代码
本文由作者按照 CC BY 4.0 进行授权