artifacts:reports:accessibility
-
artifacts:reports:annotations
artifacts:reports:api_fuzzing
artifacts:reports:browser_performance
artifacts:reports:coverage_report
artifacts:reports:codequality
artifacts:reports:container_scanning
artifacts:reports:coverage_fuzzing
artifacts:reports:cyclonedx
artifacts:reports:dast
artifacts:reports:dependency_scanning
artifacts:reports:dotenv
artifacts:reports:junit
artifacts:reports:load_performance
artifacts:reports:metrics
artifacts:reports:requirements
artifacts:reports:repository_xray
artifacts:reports:sast
artifacts:reports:secret_detection
artifacts:reports:terraform
GitLab CI/CD 아티팩트 보고서 유형
artifacts:reports
를 사용하여 다음을 수행합니다:
- 작업에서 생성된 템플릿으로 생성된 테스트 보고서, 코드 품질 보고서, 보안 보고서 및 기타 아티팩트를 수집합니다.
- 일부 보고서는 다음에서 정보를 표시하는 데 사용됩니다:
- 병합 요청.
- 파이프라인 뷰.
- 보안 대시보드 내보고서는 언제나 업로드되며, 작업 결과 (성공 또는 실패)에 관계없이 업로드됩니다.
- 이 아티팩트에 대한 만료 시간을 설정하려면
artifacts:expire_in
을 사용하여 인스턴스의 기본 설정을 무시할 수 있습니다. 프로그램은 다른 기본 아티팩트 만료 값이 있을 수 있습니다.
artifacts:reports
유형 중 일부는 동일한 파이프라인에서 여러 작업에 의해 생성될 수 있으며 각 작업의 병합 요청 또는 파이프라인 기능에서 사용될 수 있습니다.
보고서 출력 파일을 찾으려면 작업 정의에 artifacts:paths
키워드를 포함해야 합니다.
비고: 부모 파이프라인에서 자식 파이프라인의 아티팩트를 사용하는 결합 보고서는 지원되지 않습니다. 이 문제에서 지원 추가 진행 상황을 추적합니다.
artifacts:reports:accessibility
accessibility
보고서는 pa11y를 사용하여 병합 요청에서 도입된 변경 사항에 대한 접근성 영향을 보고합니다.
GitLab은 병합 요청 접근성 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다.
자세한 정보는 접근성 테스트를 참조하십시오.
artifacts:reports:annotations
- GitLab 16.3에서 소개.
annotations
보고서는 작업에 보조 데이터를 첨부하는 데 사용됩니다.
주석 보고서는 주석 섹션을 가진 JSON 파일입니다. 각 주석 섹션에는 원하는 이름과 같은 주석이 포함될 수 있으며 동일한 또는 다른 유형의 주석을 어떤 개수든 포함할 수 있습니다.
각 주석은 해당 주석의 데이터를 포함하는 단일 키(주석 유형)입니다.
주석 유형
external_link
external_link
주석은 작업에 링크를 추가하여 링크된 페이지로 이동할 수 있습니다. external_link
주석의 값은 다음 키를 가진 객체입니다:
키 | 설명 |
---|---|
label
| 링크와 연결된 인간이 읽을 수 있는 라벨. |
url
| 링크가 가리키는 URL. |
보고서 예제
다음은 작업 주석 보고서가 어떻게 보이는지의 예제입니다:
{
"my_annotation_section_1": [
{
"external_link": {
"label": "URL 1",
"url": "https://url1.example.com/"
}
},
{
"external_link": {
"label": "URL 2",
"url": "https://url2.example.com/"
}
}
]
}
artifacts:reports:api_fuzzing
api_fuzzing
보고서는 API Fuzzing 버그를 아티팩트로 수집합니다.
GitLab은 병합 요청 보안 위젯, 프로젝트 취약점 보고서, 파이프라인 보안 탭, 보안 대시보드에 하나 이상의 보고서 결과를 표시할 수 있습니다.
artifacts:reports:browser_performance
browser_performance
보고서는 브라우저 성능 테스팅 메트릭을 아티팩트로 수집합니다. 이 아티팩트는 Sitespeed 플러그인에 의해 생성된 JSON 파일입니다.
GitLab은 병합 요청 브라우저 성능 테스트 위젯에서 하나의 보고서 결과를 표시할 수 있습니다.
GitLab은 여러 browser_performance
보고서의 결합된 결과를 표시할 수 없습니다.
artifacts:reports:coverage_report
coverage_report:
를 사용하여 Cobertura 또는 JaCoCo 형식의 커버리지 보고서를 수집합니다.
coverage_format:
은 cobertura
또는
jacoco
중 하나일 수 있습니다.
Cobertura는 원래 Java용으로 개발되었지만 JavaScript, Python, Ruby 등 다른 언어에도 많은 써드파티 포트가 있습니다.
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
수집된 커버리지 보고서는 GitLab에 아티팩트로 업로드됩니다.
와일드카드를 사용하여 작업 내에서 여러 JaCoCo 또는 Cobertura 보고서를 생성하고 최종 작업 아티팩트에 포함시킬 수 있습니다. 보고서의 결과는 최종 커버리지 보고서에서 집계됩니다.
GitLab은 병합 요청 차이 주석에서 커버리지 보고서의 결과를 표시할 수 있습니다.
artifacts:reports:codequality
- 다중 보고서를 차이 주석 및 전체 파이프라인 보고서에서 지원하는 것이 15.7에서 도입됨.
codequality
보고서는 코드 품질 문제를 수집합니다. 수집된 코드 품질 보고서가 GitLab에 아티팩트로 업로드됩니다.
GitLab은 병합 요청 코드 품질 위젯, 병합 요청 차이 주석, 전체 보고서에서 하나 이상의 보고서 결과를 표시할 수 있습니다.
artifacts:expire_in
값은 1 week
로 설정됩니다.
artifacts:reports:container_scanning
container_scanning
보고서는 컨테이너 스캐닝 취약점을 수집합니다.
수집된 컨테이너 스캐닝 보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:
- 병합 요청 컨테이너 스캐닝 위젯.
- 파이프라인 보안 탭.
- 보안 대시보드.
- 프로젝트 취약점 보고서.
artifacts:reports:coverage_fuzzing
coverage_fuzzing
보고서는 커버리지 퍼징 버그를 수집합니다.
수집된 커버리지 퍼징 보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:
- 병합 요청 커버리지 퍼징 위젯.
- 파이프라인 보안 탭.
- 프로젝트 취약점 보고서.
- 보안 대시보드.
artifacts:reports:cyclonedx
해당 보고서는 프로젝트의 구성 요소를 설명하는 소프트웨어 빌드 인벤토리로, CycloneDX 프로토콜 형식을 따릅니다.
하나의 작업당 여러 CycloneDX 보고서를 지정할 수 있습니다. 이는 파일 이름 목록, 파일 이름 패턴, 또는 둘 다로 제공될 수 있습니다:
- 파일 이름 패턴 (
cyclonedx: gl-sbom-*.json
,junit: test-results/**/*.json
). - 파일 이름의 배열 (
cyclonedx: [gl-sbom-npm-npm.cdx.json, gl-sbom-bundler-gem.cdx.json]
). - 둘 다를 혼합해서 사용 (
cyclonedx: [gl-sbom-*.json, my-cyclonedx.json]
). - 디렉터리는 지원되지 않습니다 (
cyclonedx: test-results
,cyclonedx: test-results/**
).
아래는 CycloneDX 아티팩트를 노출하는 작업의 예시입니다:
artifacts:
reports:
cyclonedx:
- gl-sbom-npm-npm.cdx.json
- gl-sbom-bundler-gem.cdx.json
artifacts:reports:dast
dast
보고서는 DAST 취약점을 수집합니다. 수집된 DAST
보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:
- 병합 요청 보안 위젯.
- 파이프라인 보안 탭.
- 프로젝트 취약점 보고서.
- 보안 대시보드.
artifacts:reports:dependency_scanning
dependency_scanning
보고서는 의존성 스캐닝 취약점을 수집합니다.
수집된 의존성 스캐닝 보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:
- 병합 요청 의존성 스캐닝 위젯.
- 파이프라인 보안 탭.
- 보안 대시보드.
- 프로젝트 취약점 보고서.
- 의존성 목록.
artifacts:reports:dotenv
dotenv
보고서는 환경 변수 목록을 아티팩트로 수집합니다.
수집된 변수는 작업의 런타임에서 동적으로 생성된 변수로 등록될 수 있으며, 이를 사용하여 이후 작업 스크립트에서 사용하거나 작업이 완료된 후 동적 환경 URL을 설정할 수 있습니다.
만일 dotenv
보고서에 중복된 환경 변수가 있는 경우, 마지막으로 지정된 환경 변수가 사용됩니다.
보안 정보와 같은 민감한 데이터를 dotenv
보고서에 저장하는 것은 피해야 합니다. 보고서는 파이프라인 세부 정보 페이지에서 다운로드할 수 있으므로 신중해야 합니다. 필요하다면, 작업에서 artifacts:access를 사용하여 보고서 아티팩트를 다운로드할 수 있는 사용자를 제한할 수 있습니다.
원본 dotenv 규칙의 예외 사항은 다음과 같습니다:
- 변수 키에는 글자, 숫자, 밑줄(
_
)만 포함될 수 있습니다. -
.env
파일의 최대 크기는 5 KB입니다. 이 제한은 자체 호스팅된 인스턴스에서 변경할 수 있습니다. - GitLab.com에서 상속된 변수의 최대 수는 Free인 경우 50, Premium인 경우 100, Ultimate인 경우 150개입니다. 자체 호스팅된 인스턴스의 기본값은 150개이며 dotenv_variables 애플리케이션 제한을 변경하여 설정할 수 있습니다.
-
.env
파일에서 변수 대체는 지원되지 않습니다. - .env 파일의 여러 줄 값을 지원하지 않습니다.
-
.env
파일은 빈 줄 또는#
으로 시작하는 주석을 포함할 수 없습니다. -
env
파일의 키 값에는 공백이나 새 줄 문자(\n
)를 포함할 수 없습니다. 단일 또는 이중 인용부호를 사용할 때도 포함하여야 합니다. - 파싱 중 따옴표 이스케이핑(
key = 'value'
->{key: "value"}
)은 지원되지 않습니다. - UTF-8 인코딩만이 지원됩니다.
artifacts:reports:junit
junit
보고서는 JUnit 보고서 형식 XML 파일을 수집합니다. 수집된 단위 테스트 보고서는 GitLab에 아티팩트로 업로드됩니다. JUnit은 원래 Java에서 개발되었지만 JavaScript, Python 및 Ruby와 같은 다른 언어에 대한 많은 타사 이식 버전이 있습니다.
더 많은 세부 정보 및 예제는 단위 테스트 보고서를 참조하세요. Ruby의 RSpec 테스트 도구에서 JUnit 보고서 형식 XML 파일을 수집하는 예시는 다음과 같습니다:
rspec:
stage: test
script:
- bundle install
- rspec --format RspecJunitFormatter --out rspec.xml
artifacts:
reports:
junit: rspec.xml
GitLab는 하나 이상의 보고서 결과를 다음에서 표시할 수 있습니다:
일부 JUnit 도구는 여러 XML 파일로 내보냅니다. 단일 작업에 여러 테스트 보고서 경로를 지정하여 이를 단일 파일로 연결할 수 있습니다. 다음 중 하나를 사용하세요:
- 파일 이름 패턴 (
junit: rspec-*.xml
,junit: test-results/**/*.xml
). - 파일 이름 배열 (
junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml]
). - 둘 다의 결합 (
junit: [rspec.xml, test-results/TEST-*.xml]
). - 디렉토리는 지원되지 않습니다(
junit: test-results
,junit: test-results/**
).
artifacts:reports:load_performance
load_performance
보고서는 부하 성능 테스트 지표를 수집합니다. 이 보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab는 병합 요청 부하 테스트 위젯에서 하나의 보고서 결과만 표시할 수 있습니다.
GitLab는 여러 load_performance
보고서를 결합한 결과를 표시할 수 없습니다.
artifacts:reports:metrics
metrics
보고서는 메트릭을 수집합니다. 수집된 메트릭 보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab는 병합 요청 메트릭 보고서 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다.
artifacts:reports:requirements
requirements
보고서는 requirements.json
파일을 수집합니다. 수집된 요구사항 보고서는 GitLab에 아티팩트로 업로드되고 기존의 요구사항이 만족되었음을 표시합니다.
GitLab는 프로젝트 요구사항에서 하나 이상의 보고서 결과를 표시할 수 있습니다.
artifacts:reports:repository_xray
repository_xray
보고서는 GitLab Duo Code Suggestions에서 사용하기 위해 귀하의 저장소에 대한 정보를 수집합니다.
artifacts:reports:sast
sast
보고서는 SAST 취약점을 수집합니다. 수집된 SAST 보고서는 GitLab에 아티팩트로 업로드됩니다.
추가 정보는 다음을 참조하세요:
artifacts:reports:secret_detection
secret-detection
보고서는 감지된 비밀 정보를 수집합니다. 수집된 Secret Detection 보고서는 GitLab에 업로드됩니다.
GitLab은 다음에서 하나 이상의 보고서 결과를 표시할 수 있습니다:
- 병합 요청 비밀 스캔 위젯.
- 파이프라인 보안 탭.
- 보안 대시보드.
artifacts:reports:terraform
terraform
보고서는 Terraform tfplan.json
파일을 획득합니다. 자격 증명 제거에 대한 JQ 처리가 필요. 수집된 Terraform 계획 보고서는 GitLab에 아티팩트로 업로드됩니다.
GitLab는 병합 요청 Terraform 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다.
추가 정보는 병합 요청으로 terraform plan
정보 출력을 참조하세요.