|
# 开始使用 CI/CD
|
|
# 开始使用 CI/CD
|
|
|
|
|
|
|
|
|
|
在开始使用 CI/CD 功能之前,请确保:
|
|
在开始使用 CI/CD 功能之前,请确保:
|
|
|
|
|
|
- 一个你想使用 CI/CD 功能的项目
|
|
- 一个你想使用 CI/CD 功能的项目
|
... | @@ -10,35 +9,35 @@ |
... | @@ -10,35 +9,35 @@ |
|
|
|
|
|
在开始使用 CI/CD 功能前,需要:
|
|
在开始使用 CI/CD 功能前,需要:
|
|
|
|
|
|
1. 确保为项目配置了可以运行 jobs 的 runners,我们会提供一些可用的共享 runners,你可以直接开始使用
|
|
1. 确保为项目配置了可以运行流水线任务的 runners,我们会提供一些可用的共享 runners,你可以直接开始使用
|
|
2. 在你项目的根目录添加一个 `.gitlab-ci.yml` 文件,并在其中配置好你的 jobs
|
|
2. 在你项目的根目录添加一个 `.codechina-ci.yml` 文件,并在其中配置好你的流水线任务
|
|
|
|
|
|
当你往项目仓库中推送文件的时候,runners 会运行你的 jobs,运行的结果会显示在 pipelines 中。
|
|
当你往项目仓库中推送文件的时候,runners 会运行你的流水线任务,运行的结果会显示在流水线中。
|
|
|
|
|
|
### 确保你有可用的 runners
|
|
### 确保你有可用的 runners
|
|
|
|
|
|
runner 是运行 CI/CD jobs 的代理,建议你使用我们提供的共享 runners,你可以在`项目设置 - CI/CD`中展开 Runners 查看目前可用的 runners。
|
|
runner 是运行 CI/CD 流水线任务的代理,建议你使用我们提供的共享 runners,你可以在`项目设置 - CI/CD`中展开 Runners 查看目前可用的 runners。
|
|
|
|
|
|
你至少需要一个活跃的 runner,runner 旁边的绿色圆圈表示其是一个活跃的 runner,可用于处理你的 jobs。
|
|
你至少需要一个活跃的 runner,runner 旁边的绿色圆圈表示其是一个活跃的 runner,可用于处理你的流水线任务。
|
|
|
|
|
|
### 创建`.gitlab-ci.yml`文件
|
|
### 创建`.codechina-ci.yml`文件
|
|
|
|
|
|
`.gitlab-ci.yml`是一个`yaml`格式的文件,可用于配置 CI/CD 的特定指令。
|
|
`.codechina-ci.yml`是一个`yaml`格式的文件,可用于配置 CI/CD 的特定指令。
|
|
|
|
|
|
在这个文件中,你可以定义:
|
|
在这个文件中,你可以定义:
|
|
|
|
|
|
- runner 执行 jobs 的结构和顺序
|
|
- runner 执行流水线任务的结构和顺序
|
|
- runner 在遇到特定条件时的处理方式
|
|
- runner 在遇到特定条件时的处理方式
|
|
|
|
|
|
假设你希望在提交到除默认分支之外的任何分支时运行一系列的测试,当在提交到默认分支的时候,除了运行相同的测试外,还希望发布你的应用程序。
|
|
假设你希望在提交到除默认分支之外的任何分支时运行一系列的测试,当在提交到默认分支的时候,除了运行相同的测试外,还希望发布你的应用程序。
|
|
|
|
|
|
所有这些都可以在`.gitlab-ci.yml`中进行配置。
|
|
所有这些都可以在`.codechina-ci.yml`中进行配置。
|
|
|
|
|
|
你可以通过以下步骤创建一个`.gitlab-ci.yml`文件:
|
|
你可以通过以下步骤创建一个`.codechina-ci.yml`文件:
|
|
|
|
|
|
1. 进入项目
|
|
1. 进入项目
|
|
2. 在文件目录上方,选择要提交的分支,单击加号图标,然后选择新建文件
|
|
2. 在文件目录上方,选择要提交的分支,单击加号图标,然后选择新建文件
|
|
3. 文件名命名为 `.gitlab-ci.yml`,模板类型也选择为`.gitlab-ci.yml`并选择相应的模板,或者你也可以将以下示例配置文件粘贴进去
|
|
3. 文件名命名为 `.codechina-ci.yml`,模板类型也选择为`.codechina-ci.yml`并选择相应的模板,或者你也可以将以下示例配置文件粘贴进去
|
|
|
|
|
|
```yaml
|
|
```yaml
|
|
build-job:
|
|
build-job:
|
... | @@ -65,42 +64,42 @@ runner 是运行 CI/CD jobs 的代理,建议你使用我们提供的共享 run |
... | @@ -65,42 +64,42 @@ runner 是运行 CI/CD jobs 的代理,建议你使用我们提供的共享 run |
|
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
|
|
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
|
|
```
|
|
```
|
|
|
|
|
|
`$GITLAB_USER_LOGIN`和`$CI_COMMIT_BRANCH`是在运行 jobs 时填充的预定义变量。
|
|
`$GITLAB_USER_LOGIN`和`$CI_COMMIT_BRANCH`是在运行流水线任务时填充的预定义变量。
|
|
4. 单击`提交变更`按钮
|
|
4. 单击`提交变更`按钮
|
|
|
|
|
|
#### `.gitlab-ci.yml`小贴士
|
|
#### `.codechina-ci.yml`小贴士
|
|
|
|
|
|
- 如果您希望 runner 使用 Docker 容器来运行 jobs,在`.gitlab-ci.yml`文件以包含对应的镜像名称即可:
|
|
- 如果您希望 runner 使用 Docker 容器来运行流水线任务,在`.codechina-ci.yml`文件以包含对应的镜像名称即可:
|
|
|
|
|
|
```yaml
|
|
```yaml
|
|
default:
|
|
default:
|
|
image: ruby:2.7.2
|
|
image: ruby:2.7.2
|
|
```
|
|
```
|
|
|
|
|
|
此命令告诉 runner 使用来自 Docker Hub 的 Ruby 镜像并在从该镜像生成的容器中运行 jobs。
|
|
此命令告诉 runner 使用来自 Docker Hub 的 Ruby 镜像并在从该镜像生成的容器中运行流水线任务。
|
|
|
|
|
|
此过程不同于将应用程序构建为 Docker 容器。您的应用程序无需构建为 Docker 容器即可在 Docker 容器中运行 CI/CD 的jobs。
|
|
此过程不同于将应用程序构建为 Docker 容器。您的应用程序无需构建为 Docker 容器即可在 Docker 容器中运行 CI/CD 的流水线任务。
|
|
|
|
|
|
- 要验证您的`.gitlab-ci.yml`文件,请使用每个项目中都可用的 [CI Lint](/docs/ci/lint) 工具。
|
|
- 要验证您的`.codechina-ci.yml`文件,请使用每个项目中都可用的 [CI Lint](/docs/ci/lint) 工具。
|
|
- 您还可以使用 CI/CD 配置可视化来查看`.gitlab-ci.yml`文件的图形表示
|
|
- 您还可以使用 CI/CD 配置可视化来查看`.codechina-ci.yml`文件的图形表示
|
|
- 更多`.gitlab-ci.yml`语法相关的内容,请参阅 该[`.gitlab-ci.yml`](/docs/ci/yaml)语法说明。
|
|
- 更多`.codechina-ci.yml`语法相关的内容,请参阅 该[`.codechina-ci.yml`](/docs/ci/yaml)语法说明。
|
|
|
|
|
|
### 查看 Pipelines 和 jobs 的状态
|
|
### 查看流水线和流水线任务的状态
|
|
|
|
|
|
当你提交了代码变更后,pipeline 就会自动运行。可以通过以下方式要查看你的 pipelines:
|
|
当你提交了代码变更后,流水线就会自动运行。可以通过以下方式要查看你的流水线:
|
|
|
|
|
|
- 跳转至 **`CI/CD > Pipelines`**
|
|
- 跳转至 **`CI/CD > 流水线`**
|
|
|
|
|
|
你会看到一个具有 3个 stages 的 pipeline:
|
|
你会看到一个具有 3个 stages 的 pipeline:
|
|
|
|
|
|
![3个 stages]()
|
|
![3个 stages]()
|
|
|
|
|
|
- 要查看 pipeline 的可视化图形,你可以单击 pipeline 的 ID
|
|
- 要查看流水线的可视化图形,你可以单击流水线的 ID
|
|
|
|
|
|
![可视化图形]()
|
|
![可视化图形]()
|
|
|
|
|
|
- 要查看 jobs 的详细信息,你可以单击 job 的名称,比如 `deploy-prod`
|
|
- 要查看流水线任务的详细信息,你可以单击流水线任务的名称,比如 `deploy-prod`
|
|
|
|
|
|
![jobs 详情]()
|
|
![流水线任务详情]()
|
|
|
|
|
|
如果 job 的状态是 `stuck`,请检查项目的 Runner 是否配置正确。 |
|
如果流水线任务的状态是 `stuck`,请检查项目的 Runner 是否配置正确。 |
|
\ No newline at end of file |
|
\ No newline at end of file |