... | ... | @@ -2125,7 +2125,7 @@ deploy as review app: |
|
|
|
|
|
#### ``cache:paths``
|
|
|
|
|
|
使用 `paths` 指令选择要缓存的文件或目录。路径相对于项目目录 (`$CI_PROJECT_DIR`),不能直接链接到项目目录之外。你可以使用使用 [glob](https://en.wikipedia.org/wiki/Glob_(programming)) 的通配符模式。
|
|
|
使用 `paths` 命令选择要缓存的文件或目录。路径相对于项目目录 (`$CI_PROJECT_DIR`),不能直接链接到项目目录之外。你可以使用使用 [glob](https://en.wikipedia.org/wiki/Glob_(programming)) 的通配符模式。
|
|
|
|
|
|
缓存 `binaries` 中以 `.apk` 文件结尾和 `.config`文件结尾的所有文件:
|
|
|
|
... | ... | @@ -2520,492 +2520,268 @@ test: |
|
|
|
|
|
#### `artifacts:name`
|
|
|
|
|
|
使用 `name` 指令定义创建的 `artifacts`的名称
|
|
|
档案。你可以为每个存档指定唯一的名称。`artifacts:name`
|
|
|
变量可以使用任何[预定义变量](../variables/README.md)。
|
|
|
默认名称是`artifacts`,下载后会变成`artifacts.zip`。
|
|
|
使用 `name` 命令定义创建的 `artifacts`的名称。你可以为每个存档指定唯一的名称。`artifacts:name`
|
|
|
变量可以使用任何[预定义变量](/docs/ci/variables)。默认名称是`artifacts`,下载后会变成`artifacts.zip`。
|
|
|
|
|
|
要使用当前流水线任务的名称创建存档:
|
|
|
要使用当前流水线任务的名称创建存档,你可以这样做:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
名称:“$CI_JOB_NAME”
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
job:
|
|
|
artifacts:
|
|
|
name: "$CI_JOB_NAME"
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
使用当前分支或标记的名称创建存档,仅包括
|
|
|
二进制文件目录:
|
|
|
使用当前分支或标记的名称创建存档,仅包含 `binaries` 目录中的文件,你可以这样做:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
名称:“$CI_COMMIT_REF_NAME”
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
job:
|
|
|
artifacts:
|
|
|
name: "$CI_COMMIT_REF_NAME"
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
如果你的分支名称包含正斜杠
|
|
|
(例如`feature/my-feature`)建议使用`$CI_COMMIT_REF_SLUG`
|
|
|
而不是`$CI_COMMIT_REF_NAME` 来正确命名 `artifacts`。
|
|
|
如果你的分支名称包含 `/`(例如`feature/my-feature`)建议使用 `$CI_COMMIT_REF_SLUG` 而不是`$CI_COMMIT_REF_NAME` 来命名 `artifacts`。
|
|
|
|
|
|
使用当前流水线任务和当前分支的名称创建存档或
|
|
|
标记仅包含二进制文件目录:
|
|
|
使用当前流水线任务和当前分支的名称或 tag 创建存档,并且仅包含 `binaries` 目录中的文件,你可以这样做:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
名称:“$CI_JOB_NAME-$CI_COMMIT_REF_NAME”
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
job:
|
|
|
artifacts:
|
|
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
要使用当前 [stage](#stages) 和分支名称的名称创建存档:
|
|
|
要使用当前 [stage](#stages) 和分支名称的名称创建存档,你可以这样做:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
名称:“$CI_JOB_STAGE-$CI_COMMIT_REF_NAME”
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
job:
|
|
|
artifacts:
|
|
|
name: "$CI_JOB_STAGE-$CI_COMMIT_REF_NAME"
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
如果你使用 **Windows Batch** 运行你的 shell 脚本,则需要替换
|
|
|
`$` 和 `%`:
|
|
|
如果你使用 **Windows Batch** 运行你的 shell 脚本,则需要替换 `$` 和 `%`:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
名称:“%CI_JOB_STAGE%-%CI_COMMIT_REF_NAME%”
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
job:
|
|
|
artifacts:
|
|
|
name: "%CI_JOB_STAGE%-%CI_COMMIT_REF_NAME%"
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
如果你使用 **Windows PowerShell** 运行你的 shell 脚本,则需要替换
|
|
|
`$` 和 `$env:`:
|
|
|
如果你使用 **Windows PowerShell** 运行你的 shell 脚本,则需要替换 `$` 和 `$env:`:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
名称:“$env:CI_JOB_STAGE-$env:CI_COMMIT_REF_NAME”
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
|
|
|
####` `artifacts`:路径`
|
|
|
job:
|
|
|
artifacts:
|
|
|
name: "$env:CI_JOB_STAGE-$env:CI_COMMIT_REF_NAME"
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
路径是相对于项目目录(`$CI_PROJECT_DIR`),不能直接
|
|
|
它外面的链接。你可以使用使用 [glob](https://en.wikipedia.org/wiki/Glob_(programming)) 的通配符
|
|
|
模式和:
|
|
|
#### `artifacts:paths`
|
|
|
|
|
|
- 在 [GitLab Runner 13.0](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2620) 及更高版本中,
|
|
|
[`doublestar.Glob`](https://pkg.go.dev/github.com/bmatcuk/doublestar@v1.2.2?tab=doc#Match)。
|
|
|
- 在 GitLab Runner 12.10 及更早版本中,
|
|
|
[`filepath.Match`](https://pkg.go.dev/path/filepath#Match)。
|
|
|
路径是相对于项目目录(`$CI_PROJECT_DIR`)的,不能直接设置项目外面的链接。你可以使用使用 [glob](https://en.wikipedia.org/wiki/Glob_(programming)) 的通配符模式和 [`doublestar.Glob`](https://pkg.go.dev/github.com/bmatcuk/doublestar@v1.2.2?tab=doc#Match) 模式。
|
|
|
|
|
|
要限制特定流水线任务从哪些流水线任务获取 `artifacts`,请参阅 [dependencies](#dependencies)。
|
|
|
|
|
|
发送 `binaries` 和 `.config` 中的所有文件:
|
|
|
要包含 `binaries` 和 `.config` 中的所有文件,你可以这样做:
|
|
|
|
|
|
```yaml
|
|
|
文物:
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
artifacts:
|
|
|
paths:
|
|
|
- binaries/
|
|
|
- .config
|
|
|
``
|
|
|
```
|
|
|
|
|
|
要禁用 `artifacts`传递,请使用空 [dependencies](#dependencies) 定义流水线任务:
|
|
|
要禁用 `artifacts` 传递,请使用空 [dependencies](#dependencies) 来定义流水线任务:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
阶段:构建
|
|
|
脚本:进行构建
|
|
|
依赖项:[]
|
|
|
``
|
|
|
job:
|
|
|
stage: build
|
|
|
script: make build
|
|
|
dependencies: []
|
|
|
```
|
|
|
|
|
|
你可能只想为标记的发布创建 `artifacts`以避免填充
|
|
|
使用临时构建 `artifacts`构建服务器存储。
|
|
|
你可能只想为发行版创建 `artifacts` 以避免使用太多的临时 `artifacts` 去占用构建服务器的存储。
|
|
|
|
|
|
仅为标签创建 `artifacts`(`default-job` 不创建 `artifacts`):
|
|
|
仅为发行版创建 `artifacts`(`default-job` 不创建 `artifacts`),你可以这样做:
|
|
|
|
|
|
```yaml
|
|
|
默认流水线任务:
|
|
|
脚本:
|
|
|
- mvn 测试 -U
|
|
|
除了:
|
|
|
- 标签
|
|
|
default-job:
|
|
|
script:
|
|
|
- mvn test -U
|
|
|
except:
|
|
|
- tags
|
|
|
|
|
|
发布工作:
|
|
|
脚本:
|
|
|
- mvn 包 -U
|
|
|
文物:
|
|
|
路径:
|
|
|
- 目标/*.war
|
|
|
只要:
|
|
|
- 标签
|
|
|
``
|
|
|
release-job:
|
|
|
script:
|
|
|
- mvn package -U
|
|
|
artifacts:
|
|
|
paths:
|
|
|
- target/*.war
|
|
|
only:
|
|
|
- tags
|
|
|
```
|
|
|
|
|
|
你也可以对目录使用通配符。例如,如果你想获取以 `xyz` 结尾的目录中的所有文件:
|
|
|
你也可以对目录使用通配符。例如,如果你想获取所有以 `xyz` 结尾的目录中的文件:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
路径:
|
|
|
- 路径/*xyz/*
|
|
|
``
|
|
|
|
|
|
####` `artifacts`:公共`
|
|
|
job:
|
|
|
artifacts:
|
|
|
paths:
|
|
|
- path/*xyz/*
|
|
|
```
|
|
|
|
|
|
> - [介绍](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49775) 在 GitLab 13.8
|
|
|
> - 它[部署在功能标志后面](../../user/feature_flags.md),默认情况下禁用。
|
|
|
> - 它已在 GitLab.com 上启用。
|
|
|
> - 推荐用于生产。
|
|
|
#### `artifacts:public`
|
|
|
|
|
|
使用 `artifacts:public` 来确定流水线任务 `artifacts`是否应该
|
|
|
公开可用。
|
|
|
使用 `artifacts:public` 来确定流水线任务的 `artifacts` 是否公开可用。
|
|
|
|
|
|
`artifacts:public` 的默认值为 `true`,这意味着
|
|
|
匿名和访客用户可以下载公共流水线:
|
|
|
`artifacts:public` 的默认值为 `true`,这意味着匿名和访客用户可以下载公共流水线中的 `artifacts`:
|
|
|
|
|
|
```yaml
|
|
|
文物:
|
|
|
公众:真实
|
|
|
``
|
|
|
artifacts:
|
|
|
public: true
|
|
|
```
|
|
|
|
|
|
拒绝匿名用户和访客用户对公共 `artifacts`的读取访问
|
|
|
流水线,将 `artifacts:public` 设置为 `false`:
|
|
|
拒绝匿名用户和访客用户对公共流水线中 `artifacts`的读取访问,可以将 `artifacts:public` 设置为 `false`:
|
|
|
|
|
|
```yaml
|
|
|
文物:
|
|
|
公众:假
|
|
|
``
|
|
|
|
|
|
####` `artifacts`:报告`
|
|
|
|
|
|
> - [介绍](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20390) 在 GitLab 11.2 中。
|
|
|
> - 需要 GitLab Runner 11.2 及更高版本。
|
|
|
|
|
|
使用 [`artifacts:reports`](#artifactsreports)
|
|
|
从流水线任务中收集测试报告、代码质量报告和安全报告。
|
|
|
它还在 GitLab UI 中公开这些报告(合并请求、流水线视图和安全仪表板)。
|
|
|
|
|
|
无论流水线任务结果如何(成功或失败),都会收集测试报告。
|
|
|
你可以使用 [`artifacts:expire_in`](#artifactsexpire_in) 来设置过期时间
|
|
|
他们的文物的日期。
|
|
|
|
|
|
如果你还希望能够浏览报告输出文件,请包括
|
|
|
[`artifacts:paths`](#artifactspaths) 关键字。
|
|
|
|
|
|
##### `artifacts:reports:api_fuzzing` **(终极)**
|
|
|
artifacts:
|
|
|
public: false
|
|
|
```
|
|
|
|
|
|
> - 在 GitLab 13.4 中引入。
|
|
|
> - 需要 GitLab Runner 13.4 或更高版本。
|
|
|
#### `artifacts:reports`[](#artifactsreports)
|
|
|
|
|
|
`api_fuzzing` 报告收集了 [API Fuzzing bug](../../user/application_security/api_fuzzing/index.md)
|
|
|
作为文物。
|
|
|
使用 [`artifacts:reports`](#artifactsreports)从流水线任务中收集测试报告、代码质量报告和安全报告。它还会在合并请求和流水线视图的 UI 中公开这些报告。
|
|
|
|
|
|
收集的 API Fuzzing 报告作为 `artifacts`上传到 GitLab 并在合并中汇总
|
|
|
请求和流水线视图。它还用于为安全仪表板提供数据。
|
|
|
无论流水线任务结果如何(成功或失败),都会收集测试报告。你可以使用 [`artifacts:expire_in`](#artifactsexpire_in) 来设置过期时间。
|
|
|
|
|
|
#####`artifacts:reports:cobertura`
|
|
|
如果你还希望能够浏览报告输出文件,请使用[`artifacts:paths`](#artifactspaths) 关键字。
|
|
|
|
|
|
> - [介绍](https://gitlab.com/gitlab-org/gitlab/-/issues/3708) 在 GitLab 12.9 中。
|
|
|
> - 需要 [GitLab Runner](https://docs.gitlab.com/runner/) 11.5 及更高版本。
|
|
|
##### `artifacts:reports:cobertura`
|
|
|
|
|
|
`cobertura` 报告收集 [Cobertura 覆盖 XML 文件](../../user/project/merge_requests/test_coverage_visualization.md)。
|
|
|
收集的 Cobertura 覆盖率报告作为 `artifacts`上传到 GitLab
|
|
|
并显示在合并请求中。
|
|
|
`cobertura` 报告收集 Cobertura 覆盖 XML 文件。收集的 Cobertura 覆盖率报告作为 `artifacts` 上传并显示在合并请求中。
|
|
|
|
|
|
Cobertura 最初是为 Java 开发的,但也有很多
|
|
|
其他语言(如 JavaScript、Python、Ruby 等)的第三方端口。
|
|
|
Cobertura 最初是为 Java 开发的,但也有很多其他语言(如 JavaScript、Python、Ruby 等)的第三方端口。
|
|
|
|
|
|
##### `artifacts:reports:codequality`
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - [移动](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) 在 13.2 中免费使用 GitLab。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`codequality` 报告收集[代码质量问题](../../user/project/merge_requests/code_quality.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集的代码质量报告作为 `artifacts`上传到 GitLab,并在合并请求中汇总。
|
|
|
|
|
|
##### `artifacts:reports:container_scanning` **(终极)**
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`container_scanning` 报告收集[容器扫描漏洞](../../user/application_security/container_scanning/index.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集到的容器扫描报告作为 `artifacts`上传到 GitLab
|
|
|
汇总在合并请求和流水线视图中。它还用于提供数据以确保安全
|
|
|
仪表板。
|
|
|
|
|
|
##### `artifacts:reports:coverage_fuzzing` **(终极)**
|
|
|
|
|
|
> - 在 GitLab 13.4 中引入。
|
|
|
> - 需要 GitLab Runner 13.4 或更高版本。
|
|
|
|
|
|
`coverage_fuzzing` 报告收集 [coverage fuzzing bug](../../user/application_security/coverage_fuzzing/index.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集到的覆盖模糊报告作为 `artifacts`上传到 GitLab 并在合并中汇总
|
|
|
请求和流水线视图。它还用于为安全仪表板提供数据。
|
|
|
|
|
|
##### `artifacts:reports:dast` **(终极)**
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`dast` 报告收集 [DAST 漏洞](../../user/application_security/dast/index.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集的 DAST 报告作为 `artifacts`上传到 GitLab,并在合并请求和流水线视图中汇总。它还用于提供数据以确保安全
|
|
|
仪表板。
|
|
|
|
|
|
##### `artifacts:reports:dependency_scanning` **(终极)**
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`dependency_scanning` 报告收集[依赖扫描漏洞](../../user/application_security/dependency_scanning/index.md)
|
|
|
作为文物。
|
|
|
`codequality` 报告收集代码质量问题。
|
|
|
|
|
|
收集到的依赖扫描报告作为 `artifacts`上传到 GitLab,并在合并请求和流水线视图中汇总。它还用于提供数据以确保安全
|
|
|
仪表板。
|
|
|
收集的代码质量报告作为 `artifacts` 上传到并在合并请求中汇总。
|
|
|
|
|
|
##### `artifacts:reports:dotenv`
|
|
|
|
|
|
> - [介绍](https://gitlab.com/gitlab-org/gitlab/-/issues/17066) 在 GitLab 12.9 中。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`dotenv` 报告收集一组环境变量作为 `artifacts`。
|
|
|
|
|
|
收集的变量被注册为流水线任务的运行时创建的变量,
|
|
|
这对于[在流水线任务完成后设置动态环境 URL](../environments/index.md#set-dynamic-environment-urls-after-a-job-finishes) 很有用。
|
|
|
收集的变量被注册为流水线任务的运行时创建的变量,这对于在流水线任务完成后设置动态环境 URL 会非常有用。
|
|
|
|
|
|
[原始 dotenv 规则](https://github.com/motdotla/dotenv#rules) 有几个例外:
|
|
|
|
|
|
- 变量键只能包含字母、数字和下划线 (`_`)。
|
|
|
- `.env` 文件的最大大小为 5 KB。
|
|
|
- 在 GitLab 13.5 及更早版本中,最大继承变量数为 10。
|
|
|
- 在 [GitLab 13.6 及更高版本](https://gitlab.com/gitlab-org/gitlab/-/issues/247913) 中,
|
|
|
最大继承变量数为 20。
|
|
|
- 最大继承变量数为 20。
|
|
|
- 不支持`.env` 文件中的变量替换。
|
|
|
- `.env` 文件不能有空行或注释(以 `#` 开头)。
|
|
|
- `env` 文件中的键值不能有空格或换行符 (`\n`),包括使用单引号或双引号时。
|
|
|
- 不支持在解析过程中引用转义 (`key = 'value'` -> `{key: "value"}`)。
|
|
|
|
|
|
#####`artifacts:reports:junit`
|
|
|
|
|
|
> - [介绍](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20390) 在 GitLab 11.2 中。
|
|
|
> - 需要 GitLab Runner 11.2 及更高版本。
|
|
|
##### `artifacts:reports:junit`
|
|
|
|
|
|
`junit` 报告收集[JUnit 报告格式 XML 文件](https://www.ibm.com/support/knowledgecenter/en/SSQ2R2_14.1.0/com.ibm.rsar.analysis.codereview.cobol.doc/topics/ cac_useresults_junit.html)
|
|
|
作为文物。虽然 JUnit 最初是用 Java 开发的,但有很多
|
|
|
第三方端口用于其他
|
|
|
JavaScript、Python、Ruby 等语言。
|
|
|
`junit` 报告收集 [JUnit 报告格式 XML 文件](https://www.ibm.com/support/knowledgecenter/en/SSQ2R2_14.1.0/com.ibm.rsar.analysis.codereview.cobol.doc/topics/cac_useresults_junit.html) 作为 `artifacts`。虽然 JUnit 最初是用 Java 开发的,但有很多第三方端口用于其他JavaScript、Python、Ruby 等语言。
|
|
|
|
|
|
有关更多详细信息和示例,请参阅 [单元测试报告](../unit_test_reports.md)。
|
|
|
下面是从 Ruby 的 RSpec 测试工具收集 JUnit 报告格式 XML 文件的示例:
|
|
|
有关更多详细信息和示例,请参阅 [单元测试报告](../unit_test_reports.md)。下面是从 Ruby 的 RSpec 测试工具收集 JUnit 报告格式 XML 文件的示例:
|
|
|
|
|
|
```yaml
|
|
|
规格:
|
|
|
阶段:测试
|
|
|
脚本:
|
|
|
- 捆绑安装
|
|
|
rspec:
|
|
|
stage: test
|
|
|
script:
|
|
|
- bundle install
|
|
|
- rspec --format RspecJunitFormatter --out rspec.xml
|
|
|
文物:
|
|
|
报告:
|
|
|
junit:rspec.xml
|
|
|
``
|
|
|
|
|
|
收集到的单元测试报告作为 `artifacts`上传到 GitLab 并显示在合并请求中。
|
|
|
|
|
|
如果你使用的 JUnit 工具导出到多个 XML 文件,请指定
|
|
|
单个流水线任务中的多个测试报告路径
|
|
|
将它们连接成一个文件。使用文件名模式(`junit: rspec-*.xml`),
|
|
|
文件名数组(`junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml]`),或
|
|
|
其组合(`junit: [rspec.xml, test-results/TEST-*.xml]`)。
|
|
|
|
|
|
##### `artifacts:reports:license_management` **(终极)**
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
警告:
|
|
|
此 `artifacts`仍然有效,但**已弃用**以支持
|
|
|
[artifacts:reports:license_scanning](#artifactsreportslicense_scanning)
|
|
|
在 GitLab 12.8 中引入。
|
|
|
|
|
|
`license_management` 报告收集 [Licenses](../../user/compliance/license_compliance/index.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集的许可证合规性报告作为 `artifacts`上传到 GitLab,并在合并请求和流水线视图中汇总。它还用于提供数据以确保安全
|
|
|
仪表板。
|
|
|
|
|
|
##### `artifacts:reports:license_scanning` **(终极)**
|
|
|
|
|
|
> - 在 GitLab 12.8 中引入。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`license_scanning` 报告收集 [Licenses](../../user/compliance/license_compliance/index.md)
|
|
|
作为文物。
|
|
|
|
|
|
许可证合规性报告作为 `artifacts`上传到 GitLab 并自动显示在合并请求和流水线视图中,并提供安全数据
|
|
|
仪表板。
|
|
|
|
|
|
##### `artifacts:reports:load_performance` **(PREMIUM)**
|
|
|
|
|
|
> - 在 [GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35260) 中引入 [GitLab Premium](https://about.gitlab.com/pricing/) 13.2。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`load_performance` 报告收集 [负载性能测试指标](../../user/project/merge_requests/load_performance_testing.md)
|
|
|
作为文物。
|
|
|
|
|
|
该报告作为 `artifacts`上传到 GitLab,并且
|
|
|
自动显示在合并请求中。
|
|
|
|
|
|
##### `artifacts:reports:metrics` **(PREMIUM)**
|
|
|
|
|
|
> 在 GitLab 11.10 中引入。
|
|
|
|
|
|
`metrics` 报告收集 [Metrics](../metrics_reports.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集的指标报告作为 `artifacts`上传到 GitLab 并显示在合并请求中。
|
|
|
|
|
|
##### `artifacts:reports:performance` **(PREMIUM)**
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`performance` 报告收集 [浏览器性能测试指标](../../user/project/merge_requests/browser_performance_testing.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集的浏览器性能报告作为 `artifacts`上传到 GitLab 并显示在合并请求中。
|
|
|
|
|
|
##### `artifacts:reports:requirements` **(终极)**
|
|
|
|
|
|
> - [介绍](https://gitlab.com/groups/gitlab-org/-/epics/2859) 在 GitLab 13.1 中。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`requirements` 报告收集 `requirements.json` 文件作为 `artifacts`。
|
|
|
|
|
|
收集到的需求报告作为 `artifacts`上传到 GitLab
|
|
|
现有的 [需求](../../user/project/requirements/index.md) 是
|
|
|
标记为满意。
|
|
|
|
|
|
#####`artifacts:reports:sast`
|
|
|
|
|
|
> - 在 GitLab 11.5 中引入。
|
|
|
> - 在 GitLab 13.3 中[在所有层级可用](https://gitlab.com/groups/gitlab-org/-/epics/2098)。
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
|
|
|
`sast` 报告收集 [SAST 漏洞](../../user/application_security/sast/index.md)
|
|
|
作为文物。
|
|
|
|
|
|
收集到的 SAST 报告作为 `artifacts`上传到 GitLab 并进行汇总
|
|
|
在合并请求和流水线视图中。它还用于提供数据以确保安全
|
|
|
仪表板。
|
|
|
|
|
|
#####`artifacts:reports:secret_detection`
|
|
|
|
|
|
> - 在 GitLab 13.1 中引入。
|
|
|
> - 在 GitLab 中[在所有层级可用](https://gitlab.com/gitlab-org/gitlab/-/issues/222788)
|
|
|
13.3.
|
|
|
> - 需要 GitLab Runner 11.5 及更高版本。
|
|
|
artifacts:
|
|
|
reports:
|
|
|
junit: rspec.xml
|
|
|
```
|
|
|
|
|
|
`secret-detection` 报告收集 [检测到的机密](../../user/application_security/secret_detection/index.md)
|
|
|
作为文物。
|
|
|
收集到的单元测试报告作为 `artifacts` 上传并显示在合并请求中。
|
|
|
|
|
|
收集到的 Secret Detection 报告作为 `artifacts`上传到 GitLab 并汇总
|
|
|
在合并请求和流水线视图中。它还用于提供数据以确保安全
|
|
|
仪表板。
|
|
|
如果你使用的 JUnit 工具导出到多个 XML 文件,请指定单个流水线任务中的多个测试报告路径
|
|
|
将它们连接成一个文件。使用文件名模式(`junit: rspec-*.xml`),文件名数组(`junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml]`),或其组合(`junit: [rspec.xml, test-results/TEST-*.xml]`)的方式。
|
|
|
|
|
|
##### `artifacts:reports:terraform`
|
|
|
|
|
|
> - [介绍](https://gitlab.com/gitlab-org/gitlab/-/issues/207528) 在 GitLab 13.0 中。
|
|
|
> - 需要 [GitLab Runner](https://docs.gitlab.com/runner/) 11.5 及更高版本。
|
|
|
|
|
|
`terraform` 报告获取 Terraform `tfplan.json` 文件。[删除凭据所需的 JQ 处理](../../user/infrastructure/mr_integration.md#setup)。收集到的地形
|
|
|
计划报告作为 `artifacts`上传到 GitLab 并显示
|
|
|
在合并请求中。有关更多信息,请参阅
|
|
|
[将 `terraform plan` 信息输出到合并请求中](../../user/infrastructure/mr_integration.md)。
|
|
|
`terraform` 报告获取 Terraform `tfplan.json` 文件。收集到的计划报告作为 `artifacts`上传并显示在合并请求中。
|
|
|
|
|
|
#### `artifacts:untracked`
|
|
|
|
|
|
使用 `artifacts:untracked` 将所有 Git 未跟踪文件添加为 `artifacts`(以及
|
|
|
使用 `artifacts:paths` 中定义的路径)。`artifacts:untracked` 忽略配置
|
|
|
在存储库的`.gitignore` 文件中。
|
|
|
使用 `artifacts:untracked` 将所有 Git 未跟踪文件添加为 `artifacts`(以及使用 `artifacts:paths` 中定义的路径)。`artifacts:untracked` 忽略配置在存储库 `.gitignore` 中的文件。
|
|
|
|
|
|
发送所有 Git 未跟踪文件:
|
|
|
|
|
|
```yaml
|
|
|
文物:
|
|
|
未追踪:真实
|
|
|
``
|
|
|
artifacts:
|
|
|
untracked: true
|
|
|
```
|
|
|
|
|
|
发送所有 Git 未跟踪文件和“二进制文件”中的文件:
|
|
|
发送所有 Git 未跟踪文件和 `binaries` 中的文件:
|
|
|
|
|
|
```yaml
|
|
|
文物:
|
|
|
未追踪:真实
|
|
|
路径:
|
|
|
- 二进制文件/
|
|
|
``
|
|
|
artifacts:
|
|
|
untracked: true
|
|
|
paths:
|
|
|
- binaries/
|
|
|
```
|
|
|
|
|
|
发送所有未跟踪的文件,但 [排除](#artifactsexclude) `*.txt`:
|
|
|
发送所有未跟踪的文件,但 [排除](#artifactsexclude) `*.txt` 文件:
|
|
|
|
|
|
```yaml
|
|
|
文物:
|
|
|
未追踪:真实
|
|
|
排除:
|
|
|
- “*。文本文件”
|
|
|
``
|
|
|
artifacts:
|
|
|
untracked: true
|
|
|
exclude:
|
|
|
- "*.txt"
|
|
|
```
|
|
|
|
|
|
####` `artifacts`:何时`
|
|
|
#### `artifacts:when`
|
|
|
|
|
|
使用 `artifacts:when` 在流水线任务失败时上传 `artifacts`或尽管
|
|
|
失败。
|
|
|
使用 `artifacts:when` 在流水线任务失败或不论失败与否时上传 `artifacts` 。
|
|
|
|
|
|
`artifacts:when` 可以设置为以下值之一:
|
|
|
|
|
|
1. `on_success`(默认):仅在流水线任务成功时上传 `artifacts`。
|
|
|
1. `on_failure`:仅在流水线任务失败时上传 `artifacts`。
|
|
|
1. `always`:始终上传 `artifacts`。很有用,例如,当
|
|
|
[上传 `artifacts`](../unit_test_reports.md#viewing-junit-screenshots-on-gitlab) 需要
|
|
|
对失败的测试进行故障排除。
|
|
|
2. `always`:始终上传 `artifacts`。例如,当需要上传 `artifacts` 对失败的测试进行故障排除时会非常有用。
|
|
|
|
|
|
例如,仅在流水线任务失败时上传 `artifacts`:
|
|
|
|
|
|
```yaml
|
|
|
工作:
|
|
|
文物:
|
|
|
时间:on_failure
|
|
|
``
|
|
|
job:
|
|
|
artifacts:
|
|
|
when: on_failure
|
|
|
```
|
|
|
|
|
|
###`覆盖范围`
|
|
|
### `coverage`[](#coverage)
|
|
|
|
|
|
使用 `coverage` 配置如何从
|
|
|
流水线任务输出。
|
|
|
使用 `coverage` 配置如何从流水线任务输出。
|
|
|
|
|
|
正则表达式是此处预期的唯一有效值。所以,使用
|
|
|
围绕 `/` 是强制性的,以一致且明确地表示
|
|
|
一个正则表达式字符串。如果你想,你必须转义特殊字符
|
|
|
从字面上匹配它们。
|
|
|
正则表达式是此处预期的唯一有效值。所以,使用 `/` 包裹是强制性的,以一致且明确地表示
|
|
|
一个正则表达式字符串。如果需要的话,你必须转义特殊字符以从字面上匹配它们。
|
|
|
|
|
|
例如:
|
|
|
|
|
|
```yaml
|
|
|
工作1:
|
|
|
脚本:rspec
|
|
|
覆盖率:'/代码覆盖率:\d+\.\d+/'
|
|
|
``
|
|
|
job1:
|
|
|
script: rspec
|
|
|
coverage: '/Code coverage: \d+\.\d+/'
|
|
|
```
|
|
|
|
|
|
如果流水线任务输出中至少有一行与正则表达式匹配,则覆盖率会显示在 UI 中。
|
|
|
如果流水线任务输出中有多个匹配的行,则使用最后一行。
|
... | ... | |