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 会为每个项目创建一个临时目录,其中包含任务所需的所有文件和代码