|
|
|
# `.codechina-ci.yml` 配置文件
|
|
|
|
|
|
|
|
要使用 CI/CD,需要保证以下两点:
|
|
|
|
|
|
|
|
- 第一、应用程序代码托管在 Git 仓库中
|
|
|
|
- 第二、在仓库的根目录中存在一个包含 CI/CD 配置的 `.codechina-ci.yml` 文件
|
|
|
|
|
|
|
|
在`.codechina-ci.yml`文件中,你可以定义:
|
|
|
|
|
|
|
|
- 你想要运行的脚本
|
|
|
|
- 你想要包含的其他配置文件和模板
|
|
|
|
- 依赖项和缓存
|
|
|
|
- 一些按顺序运行的命令和一些并行运行的命令
|
|
|
|
- 应用程序要部署的位置
|
|
|
|
- 自动运行脚本或是手动触发脚本
|
|
|
|
|
|
|
|
脚本被分组到流水线任务中,流水线任务作为更大流水线的一部分运行 。你可以将多个独立的流水线任务分组为按定义顺序运行的 stage。CI/CD 配置至少需要一个未隐藏的流水线任务。
|
|
|
|
|
|
|
|
你应该按照适合你的应用程序并符合你希望执行的测试的顺序来组织流水线任务。你可以将添加到流水线任务的脚本理解成你在计算机上运行的 CLI 命令。
|
|
|
|
|
|
|
|
|
|
|
|
当你将 `.codechina-ci.yml` 文件添加到远程项目仓库时,我们会检测到它,并且相应的 Runner 应用程序会运行流水线任务中定义好的脚本。
|
|
|
|
|
|
|
|
一个 `.codechina-ci.yml` 文件可能包含:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
stages:
|
|
|
|
- build
|
|
|
|
- test
|
|
|
|
|
|
|
|
build-code-job:
|
|
|
|
stage: build
|
|
|
|
script:
|
|
|
|
- echo "Check the ruby version, then build some Ruby project files:"
|
|
|
|
- ruby -v
|
|
|
|
- rake
|
|
|
|
|
|
|
|
test-code-job1:
|
|
|
|
stage: test
|
|
|
|
script:
|
|
|
|
- echo "If the files are built successfully, test some files with one command:"
|
|
|
|
- rake test1
|
|
|
|
|
|
|
|
test-code-job2:
|
|
|
|
stage: test
|
|
|
|
script:
|
|
|
|
- echo "If the files are built successfully, test other files with a different command:"
|
|
|
|
- rake test2
|
|
|
|
```
|
|
|
|
|
|
|
|
在上面的例子中,build stage 中名为`build-code-job`的流水线任务将首先运行。它会输出流水线任务使用的 Ruby 版本,然后运行`rake`以构建项目文件。如果此流水线任务成功完成,test stage 中的两个`test-code-job`流水线任务将会并行启动测试。
|
|
|
|
|
|
|
|
示例中的流水线由三个流水线任务组成,并且分为 build 以及 test 两个 stage,每次将更改推送到项目中的任何分支时,流水线都会运行。
|
|
|
|
|
|
|
|
CI/CD 不仅执行 job,还显示执行期间发生的情况,就像你在终端中看到的一样:
|
|
|
|
|
|
|
|
![job 执行情况](/docs/img/job_running.png)
|
|
|
|
|
|
|
|
当你在为你的的应用程序创建好了策略后,我们还会根据你自定义的内容运行流水线,同时还会显示流水线的运行状态:
|
|
|
|
|
|
|
|
![流水线状态](/docs/img/pipeline_status.png)
|
|
|
|
|
|
|
|
如果出现了问题,你可以选择回滚更改:
|
|
|
|
|
|
|
|
![回滚更改](img/rollback.png)
|
|
|
|
|
|
|
|
点击查看`.codechina-ci.yml`文件的[完整语法](/docs/ci/yaml)。 |
|
|
|
\ No newline at end of file |