diff --git a/app/models/ci/job_artifact.rb b/app/models/ci/job_artifact.rb index fdb8015ba3d..96bfe7f93b7 100644 --- a/app/models/ci/job_artifact.rb +++ b/app/models/ci/job_artifact.rb @@ -12,6 +12,7 @@ module Ci TEST_REPORT_FILE_TYPES = %w[junit].freeze COVERAGE_REPORT_FILE_TYPES = %w[cobertura].freeze + ACCESSIBILITY_REPORT_FILE_TYPES = %w[accessibility].freeze NON_ERASABLE_FILE_TYPES = %w[trace].freeze TERRAFORM_REPORT_FILE_TYPES = %w[terraform].freeze DEFAULT_FILE_NAMES = { @@ -21,6 +22,7 @@ module Ci metrics_referee: nil, network_referee: nil, junit: 'junit.xml', + accessibility: 'gl-accessibility.json', codequality: 'gl-code-quality-report.json', sast: 'gl-sast-report.json', dependency_scanning: 'gl-dependency-scanning-report.json', @@ -54,6 +56,7 @@ module Ci # All these file formats use `raw` as we need to store them uncompressed # for Frontend to fetch the files and do analysis # When they will be only used by backend, they can be `gzipped`. + accessibility: :raw, codequality: :raw, sast: :raw, dependency_scanning: :raw, @@ -99,6 +102,10 @@ module Ci with_file_types(TEST_REPORT_FILE_TYPES) end + scope :accessibility_reports, -> do + with_file_types(ACCESSIBILITY_REPORT_FILE_TYPES) + end + scope :coverage_reports, -> do with_file_types(COVERAGE_REPORT_FILE_TYPES) end @@ -138,7 +145,8 @@ module Ci lsif: 15, # LSIF data for code navigation dotenv: 16, cobertura: 17, - terraform: 18 # Transformed json + terraform: 18, # Transformed json + accessibility: 19 } enum file_format: { diff --git a/doc/ci/README.md b/doc/ci/README.md index 30971d422cc..bed16a6fb5d 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -37,14 +37,17 @@ your app. For a complete overview of these methodologies and GitLab CI/CD, read the [Introduction to CI/CD with GitLab](introduction/index.md). - -For a video demonstration of GitLab CI/CD, see [Demo: CI/CD with GitLab](https://www.youtube.com/watch?v=1iXFbchozdY). +
+ Video demonstration of GitLab CI/CD: Demo: CI/CD with GitLab. +
+
+ +
## Getting started GitLab CI/CD is configured by a file called `.gitlab-ci.yml` placed -at the repository's root. The scripts set in this file are executed -by the [GitLab Runner](https://docs.gitlab.com/runner/). +at the repository's root. This file creates a [pipeline](pipelines/index.md), which runs for changes to the code in the repository. Pipelines consist of one or more stages that run in order and can each contain one or more jobs that run in parallel. These jobs (or scripts) get executed by the [GitLab Runner](https://docs.gitlab.com/runner/) agent. To get started with GitLab CI/CD, we recommend you read through the following documents: @@ -74,25 +77,32 @@ for all the attributes you can set and use. NOTE: **Note:** GitLab CI/CD and [shared runners](runners/README.md#shared-specific-and-group-runners) are enabled in GitLab.com and available for all users, limited only to the [user's pipelines quota](../user/gitlab_com/index.md#shared-runners). -## Configuration +## Concepts -GitLab CI/CD supports numerous configuration options: +GitLab CI/CD uses a number of concepts to describe and run your build and deploy. -| Configuration | Description | +| Concept | Description | |:--------------|:-------------| | [Pipelines](pipelines/index.md) | Structure your CI/CD process through pipelines. | | [Environment variables](variables/README.md) | Reuse values based on a variable/value key pair. | | [Environments](environments.md) | Deploy your application to different environments (e.g., staging, production). | | [Job artifacts](pipelines/job_artifacts.md) | Output, use, and reuse job artifacts. | | [Cache dependencies](caching/index.md) | Cache your dependencies for a faster execution. | +| [GitLab Runner](https://docs.gitlab.com/runner/) | Configure your own GitLab Runners to execute your scripts. | + +## Configuration + +GitLab CI/CD supports numerous configuration options: + +| Configuration | Description | +|:--------------|:-------------| | [Schedule pipelines](pipelines/schedules.md) | Schedule pipelines to run as often as you need. | | [Custom path for `.gitlab-ci.yml`](pipelines/settings.md#custom-ci-configuration-path) | Define a custom path for the CI/CD configuration file. | | [Git submodules for CI/CD](git_submodules.md) | Configure jobs for using Git submodules.| | [SSH keys for CI/CD](ssh_keys/README.md) | Using SSH keys in your CI pipelines. | -| [Pipelines triggers](triggers/README.md) | Trigger pipelines through the API. | +| [Pipeline triggers](triggers/README.md) | Trigger pipelines through the API. | | [Pipelines for Merge Requests](merge_request_pipelines/index.md) | Design a pipeline structure for running a pipeline in merge requests. | | [Integrate with Kubernetes clusters](../user/project/clusters/index.md) | Connect your project to Google Kubernetes Engine (GKE) or an existing Kubernetes cluster. | -| [GitLab Runner](https://docs.gitlab.com/runner/) | Configure your own GitLab Runners to execute your scripts. | | [Optimize GitLab and Runner for large repositories](large_repositories/index.md) | Recommended strategies for handling large repos. | | [`.gitlab-ci.yml` full reference](yaml/README.md) | All the attributes you can use with GitLab CI/CD. | diff --git a/doc/ci/docker/using_kaniko.md b/doc/ci/docker/using_kaniko.md index 5a6f7490266..99d01590895 100644 --- a/doc/ci/docker/using_kaniko.md +++ b/doc/ci/docker/using_kaniko.md @@ -89,6 +89,18 @@ store: -----END CERTIFICATE-----" >> /kaniko/ssl/certs/ca-certificates.crt ``` +## Video walkthrough of a working example + +The [Least Privilege Container Builds with Kaniko on GitLab](https://www.youtube.com/watch?v=d96ybcELpFs) +video is a walkthrough of the [Kaniko Docker Build](https://gitlab.com/guided-explorations/containers/kaniko-docker-build) +Guided Exploration project pipeline. It was tested on: + +- [GitLab.com Shared Runners](../../user/gitlab_com/index.md#shared-runners) +- [The Kubernetes Runner executor](https://docs.gitlab.com/runner/executors/kubernetes.html) + +The example can be copied to your own group or instance for testing. More details +on what other GitLab CI patterns are demonstrated are available at the project page. +