GitLab CI/CD 아티팩트 보고서 유형

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

artifacts:reports를 사용하여 다음을 수행할 수 있습니다:

  • 작업에서 생성된 포함된 템플릿에 의해 생성된 테스트 보고서, 코드 품질 보고서, 보안 보고서 및 기타 아티팩트를 수집합니다.
  • 이러한 보고서 중 일부는 다음에서 정보를 표시하는 데 사용됩니다:

artifacts:reports의 아티팩트는 작업 결과(성공 또는 실패)에 관계없이 항상 업로드됩니다. artifacts:expire_in(index.md#artifactsexpire_in)을 사용하여 아티팩트의 만료 시간을 설정하여 인스턴스의기본 설정을 덮어쓸 수 있습니다. GitLab.com은기본 아티팩트 만료 값이 다를 수 있습니다.

동일한 파이프라인의 여러 작업에서 생성된 artifacts:reports 유형은 Merge Request 또는 파이프라인 기능에 의해 사용될 수 있습니다.

보고서 출력 파일을 찾으려면 작업 정의에 artifacts:paths 키워드를 포함해야 합니다.

note
자식 파이프라인에서 아티팩트를 사용하여 부모 파이프라인에서 결합된 보고서는 지원되지 않습니다. 이에 대한 지원 추가 진행 상황은이 이슈에서 확인할 수 있습니다.

artifacts:reports:accessibility

accessibility 보고서는 Merge Request에서 도입된 변경 사항의 접근성 영향을 보고하는 데 pa11y를 사용합니다.

GitLab은 Merge Request의 반환 양식에서 하나 이상의 보고서 결과를 표시할 수 있습니다. 접근성 위젯에서 Merge Request의 접근성 위젯을 표시할 수 있습니다.

자세한 내용은 접근성 테스팅을 참조하십시오.

artifacts:reports:annotations

annotations 보고서는 작업에 보조 데이터를 첨부하는 데 사용됩니다.

주석 보고서는 주석 섹션을 포함하는 JSON 파일입니다. 각 주석 섹션에는 원하는 이름을 가진 주석이 들어갈 수 있으며 동일한 또는 다른 유형의 주석을 포함할 수 있습니다.

각 주석은 해당 주석의 데이터를 포함하는 단일 키(주석 유형)이 포함됩니다.

주석 유형

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

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

api_fuzzing 보고서는 API Fuzzing 버그를 아티팩트로 수집합니다.

GitLab은 Merge Request의보안 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다. - 프로젝트 취약점 보고서. - 파이프라인보안 탭. - 보안 대시보드.

artifacts:reports:browser_performance

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab 14.0에서 artifacts:reports:performance로부터 이름이 변경되었습니다.(https://gitlab.com/gitlab-org/gitlab/-/issues/225914).

browser_performance 보고서는 브라우저 성능 테스트 지표를 아티팩트로 수집합니다.

GitLab은 Merge Request의브라우저 성능 테스팅 위젯에서 하나의 보고서 결과를 표시할 수 있습니다.

GitLab은 여러 browser_performance 보고서의 결합된 결과를 표시할 수 없습니다.

artifacts:reports:coverage_report

coverage_report를 사용하여 Cobertura 형식의 커버리지 보고서를 수집합니다.

cobertura 보고서는 Cobertura 커버리지 XML 파일을 수집합니다.

Cobertura는 원래 Java용으로 개발되었지만 JavaScript, Python, Ruby와 같은 다른 언어를 위한 많은 타사 포트가 있습니다.

artifacts:
  reports:
    coverage_report:
      coverage_format: cobertura
      path: coverage/cobertura-coverage.xml

수집된 커버리지 보고서는 GitLab에 아티팩트로 업로드됩니다. 작업 당 하나의 보고서만 사용할 수 있습니다.

GitLab은 Merge Request의차이 주석에서 커버리지 보고서 결과를 표시할 수 있습니다.

artifacts:reports:codequality

codequality 보고서는코드 퀄리티 이슈를 수집합니다. 수집된 코드 품질 보고서는 GitLab에 아티팩트로 업로드됩니다.

GitLab은 Merge Request의코드 품질 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다. - Merge Request차이 주석. - 전체 보고서.

artifacts:expire_in 값은 1주로 설정됩니다.

artifacts:reports:container_scanning

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

container_scanning 보고서는 컨테이너 스캐닝 취약점을 수집합니다. 수집된 컨테이너 스캐닝 보고서는 GitLab에 아티팩트로 업로드됩니다.

GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:

artifacts:reports:coverage_fuzzing

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

coverage_fuzzing 보고서는 커버리지 퍼징 버그를 수집합니다. 수집된 커버리지 퍼징 보고서는 GitLab에 아티팩트로 업로드됩니다. GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:

artifacts:reports:cyclonedx

이 보고서는 프로젝트의 컴포넌트를 설명하는 소프트웨어 자산 디렉터리(Software Bill of Materials)으로, 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

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

dast 보고서는 DAST 취약점을 수집합니다. 수집된 DAST 보고서는 GitLab에 아티팩트로 업로드됩니다.

GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:

artifacts:reports:dependency_scanning

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

dependency_scanning 보고서는 의존성 스캐닝 취약점을 수집합니다. 수집된 의존성 스캐닝 보고서는 GitLab에 아티팩트로 업로드됩니다.

GitLab은 하나 이상의 보고서 결과를 다음 위치에 표시할 수 있습니다:

artifacts:reports:dotenv

dotenv 보고서는 환경 변수 집합을 아티팩트로 수집합니다.

수집된 변수는 작업의 런타임에서 생성된 변수로 등록되며, 작업이 완료된 후 동적 환경 URL을 설정하기 위해 사용할 수 있습니다.

dotenv 보고서에 중복 환경 변수가 있는 경우:

  • GitLab 14.6 이상에서는 마지막으로 지정된 변수가 사용됩니다.
  • GitLab 14.5 이전에는 오류가 발생합니다.

원본 dotenv 규칙의 예외 사항은 다음과 같습니다:

  • 변수 키는 문자, 숫자 및 밑줄(_)만 포함할 수 있습니다.
  • .env 파일의 최대 크기는 5 KB입니다. 이 제한은 Self-managed 인스턴스에서 변경할 수 있습니다.
  • GitLab.com에서는 상속된 변수의 최대 수는 Free 기준으로 50, Premium은 100, Ultimate는 150입니다. Self-managed 인스턴스의 기본값은 150이며, dotenv_variables 애플리케이션 제한을 변경함으로써 변경할 수 있습니다.
  • .env 파일에서 변수 치환은 지원되지 않습니다.
  • .env 파일의 여러 줄 값은 지원되지 않습니다.
  • .env 파일에는 빈 줄이나 주석(#로 시작)이 없어야 합니다.
  • env 파일의 키 값은 공백이나 줄 바꿈 문자(\n)가 없어야 합니다. 작은따옴표나 큰따옴표를 사용할 때도 포함됩니다.
  • 구문 분석 중인 따옴표 이스케이핑(key = 'value' -> {key: "value"})은 지원되지 않습니다.
  • UTF-8 인코딩만 지원됩니다.

artifacts:reports:junit

junit 리포트는 JUnit 보고서 형식 XML 파일을 수집합니다. 수집된 단위 테스트 보고서를 GitLab에 artifact로 업로드합니다. 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

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

load_performance 리포트는 로드 성능 테스팅 지표를 수집합니다. 이 보고서는 artifact로 GitLab에 업로드됩니다.

GitLab는 Merge Request의 로드 테스트 위젯에서 하나의 보고서 결과만 표시할 수 있습니다.

GitLab는 여러 load_performance 보고서의 결합된 결과를 표시할 수 없습니다.

artifacts:reports:metrics

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

metrics 리포트는 메트릭을 수집합니다. 수집된 메트릭 보고서는 GitLab에 artifact로 업로드됩니다.

GitLab는 Merge Request의 메트릭 보고서 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다.

artifacts:reports:requirements

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

requirements 리포트는 requirements.json 파일을 수집합니다. 수집된 요구사항 보고서는 GitLab에 artifact로 업로드되며, 기존 요구사항은 만족으로 표시됩니다.

GitLab는 프로젝트 요구사항에서 하나 이상의 보고서 결과를 표시할 수 있습니다.

artifacts:reports:repository_xray

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

repository_xray 리포트는 리포지터리에 대한 정보를 수집하여 코드 제안에서 인공 지능(AI)이 사용할 수 있도록 합니다.

artifacts:reports:sast

sast 리포트는 SAST 취약점을 수집합니다. 수집된 SAST 보고서는 GitLab에 artifact로 업로드됩니다.

더 많은 정보는 다음을 참조하세요:

artifacts:reports:secret_detection

secret-detection 리포트는 검출된 시크릿을 수집합니다. 수집된 Secret Detection 보고서는 GitLab에 업로드됩니다.

GitLab는 다음에서 하나 이상의 보고서 결과를 표시할 수 있습니다:

artifacts:reports:terraform

terraform 리포트는 Terraform tfplan.json 파일을 얻습니다. 자격 증명을 제거하기 위해 JQ 처리가 필요. 수집된 Terraform 계획 보고서는 GitLab에 artifact로 업로드됩니다.

GitLab는 Merge Request의 Terraform 위젯에서 하나 이상의 보고서 결과를 표시할 수 있습니다.

더 많은 정보는 Merge Request으로 terraform plan 정보 출력을 참조하세요.