Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
2c06e006d8
commit
ed28831dfe
22 changed files with 141 additions and 199 deletions
|
@ -1,63 +0,0 @@
|
|||
# Builds a cached .tar.gz of the $CI_DEFAULT_BRANCH branch with full history and
|
||||
# uploads it to Google Cloud Storage. This archive is downloaded by a
|
||||
# script defined by a CI/CD variable named CI_PRE_CLONE_SCRIPT. This has
|
||||
# two benefits:
|
||||
#
|
||||
# 1. It speeds up builds. A 800 MB download only takes seconds.
|
||||
# 2. It significantly reduces load on the file server. Smaller deltas
|
||||
# means less time spent in git pack-objects.
|
||||
#
|
||||
# Since the destination directory of the archive depends on the project
|
||||
# ID, this is only run on GitLab.com.
|
||||
#
|
||||
# CI_REPO_CACHE_CREDENTIALS contains the Google Cloud service account
|
||||
# JSON for uploading to the gitlab-ci-git-repo-cache bucket. These
|
||||
# credentials are stored in the Production vault.
|
||||
#
|
||||
# Note that this bucket should be located in the same continent as the
|
||||
# runner, or network egress charges will apply:
|
||||
# https://cloud.google.com/storage/pricing
|
||||
cache-repo:
|
||||
extends: .cache-repo:rules
|
||||
image: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
|
||||
stage: sync
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
SHALLOW_CLONE_TAR_FILENAME: gitlab-master-shallow.tar
|
||||
FULL_CLONE_TAR_FILENAME: gitlab-master.tar
|
||||
before_script:
|
||||
- '[ -z "$CI_REPO_CACHE_CREDENTIALS" ] || gcloud auth activate-service-account --key-file=$CI_REPO_CACHE_CREDENTIALS'
|
||||
script:
|
||||
# Enable shallow repo caching unless the $DISABLE_SHALLOW_REPO_CACHING variable exists (in the case the shallow clone caching isn't working well)
|
||||
# The `git repack` call works around a Git bug with shallow clones: https://gitlab.com/gitlab-org/git/-/issues/86
|
||||
- if [ -z "$DISABLE_SHALLOW_REPO_CACHING" ]; then
|
||||
cd .. && rm -rf $CI_PROJECT_NAME;
|
||||
today=$(date +%Y-%m-%d);
|
||||
year=$(date +%Y);
|
||||
last_year=`expr $year - 1`;
|
||||
one_year_ago=$(echo $today | sed "s/$year/$last_year/");
|
||||
echo "Cloning $CI_REPOSITORY_URL into $CI_PROJECT_NAME with commits from $one_year_ago.";
|
||||
time git clone --progress --no-checkout --shallow-since=$one_year_ago $CI_REPOSITORY_URL $CI_PROJECT_NAME;
|
||||
cd $CI_PROJECT_NAME;
|
||||
time git repack -d;
|
||||
echo "Archiving $CI_PROJECT_NAME into /tmp/$SHALLOW_CLONE_TAR_FILENAME.";
|
||||
time git remote rm origin;
|
||||
time tar cf /tmp/$SHALLOW_CLONE_TAR_FILENAME .;
|
||||
echo "GZipping /tmp/$SHALLOW_CLONE_TAR_FILENAME.";
|
||||
time gzip /tmp/$SHALLOW_CLONE_TAR_FILENAME;
|
||||
[ -z "$CI_REPO_CACHE_CREDENTIALS" ] || (echo "Uploading /tmp/$SHALLOW_CLONE_TAR_FILENAME.gz to GCloud." && time gsutil cp /tmp/$SHALLOW_CLONE_TAR_FILENAME.gz gs://gitlab-ci-git-repo-cache/project-$CI_PROJECT_ID/$SHALLOW_CLONE_TAR_FILENAME.gz);
|
||||
fi
|
||||
# Disable the full repo caching unless the $DISABLE_SHALLOW_REPO_CACHING variable exists (in the case the shallow clone caching isn't working well)
|
||||
- if [ -n "$DISABLE_SHALLOW_REPO_CACHING" ]; then
|
||||
cd .. && rm -rf $CI_PROJECT_NAME;
|
||||
echo "Cloning $CI_REPOSITORY_URL into $CI_PROJECT_NAME.";
|
||||
time git clone --progress $CI_REPOSITORY_URL $CI_PROJECT_NAME;
|
||||
cd $CI_PROJECT_NAME;
|
||||
time git repack -d;
|
||||
echo "Archiving $CI_PROJECT_NAME into /tmp/$FULL_CLONE_TAR_FILENAME.";
|
||||
time git remote rm origin;
|
||||
time tar cf /tmp/$FULL_CLONE_TAR_FILENAME .;
|
||||
echo "GZipping /tmp/$FULL_CLONE_TAR_FILENAME.";
|
||||
time gzip /tmp/$FULL_CLONE_TAR_FILENAME;
|
||||
[ -z "$CI_REPO_CACHE_CREDENTIALS" ] || (echo "Uploading /tmp/$FULL_CLONE_TAR_FILENAME.gz to GCloud." && time gsutil cp /tmp/$FULL_CLONE_TAR_FILENAME.gz gs://gitlab-ci-git-repo-cache/project-$CI_PROJECT_ID/$FULL_CLONE_TAR_FILENAME.gz);
|
||||
fi
|
|
@ -94,9 +94,6 @@
|
|||
.if-dot-com-ee-nightly-schedule-child-pipeline: &if-dot-com-ee-nightly-schedule-child-pipeline
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $FREQUENCY == "nightly"'
|
||||
|
||||
.if-cache-credentials-schedule: &if-cache-credentials-schedule
|
||||
if: '$CI_REPO_CACHE_CREDENTIALS && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-dot-com-gitlab-org-default-branch: &if-dot-com-gitlab-org-default-branch
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
|
||||
|
||||
|
@ -482,14 +479,6 @@
|
|||
- changes: *ci-build-images-patterns
|
||||
- changes: *code-qa-patterns
|
||||
|
||||
####################
|
||||
# Cache repo rules #
|
||||
####################
|
||||
.cache-repo:rules:
|
||||
rules:
|
||||
- <<: *if-cache-credentials-schedule
|
||||
allow_failure: true
|
||||
|
||||
#############
|
||||
# CNG rules #
|
||||
#############
|
||||
|
|
|
@ -259,6 +259,5 @@ For very active repositories with a large number of references and files, you ca
|
|||
must be configured per-repository. The pack-objects cache also automatically works for forks. On GitLab.com, where the pack-objects cache is
|
||||
enabled on all Gitaly servers, we found that we no longer need a pre-clone step for `gitlab-org/gitlab` development.
|
||||
- Optimize your CI/CD jobs by seeding repository data in a pre-clone step with the
|
||||
[`pre_clone_script`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section) of GitLab Runner. See our
|
||||
[development documentation](../../development/pipelines.md#pre-clone-step) for an overview of how we used to implement this approach on
|
||||
GitLab.com for the main GitLab repository.
|
||||
[`pre_clone_script`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section) of GitLab Runner. See the
|
||||
[Runner Cloud for Linux](../runners/runner_cloud/linux_runner_cloud.md#pre-clone-script) for more details.
|
||||
|
|
|
@ -52,13 +52,67 @@ can be used for:
|
|||
To use this feature, define a [CI/CD variable](../../../ci/variables/index.md#custom-cicd-variables) called
|
||||
`CI_PRE_CLONE_SCRIPT` that contains a bash script.
|
||||
|
||||
[This example](../../../development/pipelines.md#pre-clone-step)
|
||||
demonstrates how you might use a pre-clone step to seed the build
|
||||
directory.
|
||||
|
||||
NOTE:
|
||||
The `CI_PRE_CLONE_SCRIPT` variable does not work on Windows runners.
|
||||
|
||||
### Pre-clone script example
|
||||
|
||||
This example was used in the `gitlab-org/gitlab` project until November 2021.
|
||||
The project no longer uses this optimization because the [pack-objects cache](../../../administration/gitaly/configure_gitaly.md#pack-objects-cache)
|
||||
lets Gitaly serve the full CI/CD fetch traffic. See [Git fetch caching](../../../development/pipelines.md#git-fetch-caching).
|
||||
|
||||
The `CI_PRE_CLONE_SCRIPT` was defined as a project CI/CD variable:
|
||||
|
||||
```shell
|
||||
(
|
||||
echo "Downloading archived master..."
|
||||
wget -O /tmp/gitlab.tar.gz https://storage.googleapis.com/gitlab-ci-git-repo-cache/project-278964/gitlab-master-shallow.tar.gz
|
||||
|
||||
if [ ! -f /tmp/gitlab.tar.gz ]; then
|
||||
echo "Repository cache not available, cloning a new directory..."
|
||||
exit
|
||||
fi
|
||||
|
||||
rm -rf $CI_PROJECT_DIR
|
||||
echo "Extracting tarball into $CI_PROJECT_DIR..."
|
||||
mkdir -p $CI_PROJECT_DIR
|
||||
cd $CI_PROJECT_DIR
|
||||
tar xzf /tmp/gitlab.tar.gz
|
||||
rm -f /tmp/gitlab.tar.gz
|
||||
chmod a+w $CI_PROJECT_DIR
|
||||
)
|
||||
```
|
||||
|
||||
The first step of the script downloads `gitlab-master.tar.gz` from Google Cloud Storage.
|
||||
There was a [GitLab CI/CD job named `cache-repo`](https://gitlab.com/gitlab-org/gitlab/-/blob/5fb40526c8c8aaafc5f92eab36d5bbddaca3893d/.gitlab/ci/cache-repo.gitlab-ci.yml)
|
||||
that was responsible for keeping that archive up-to-date. Every two hours on a scheduled pipeline,
|
||||
it did the following:
|
||||
|
||||
1. Create a fresh clone of the `gitlab-org/gitlab` repository on GitLab.com.
|
||||
1. Save the data as a `.tar.gz`.
|
||||
1. Upload it into the Google Cloud Storage bucket.
|
||||
|
||||
When a job ran with this configuration, the output looked similar to:
|
||||
|
||||
```shell
|
||||
$ eval "$CI_PRE_CLONE_SCRIPT"
|
||||
Downloading archived master...
|
||||
Extracting tarball into /builds/gitlab-org/gitlab...
|
||||
Fetching changes...
|
||||
Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/
|
||||
```
|
||||
|
||||
The `Reinitialized existing Git repository` message shows that
|
||||
the pre-clone step worked. The runner runs `git init`, which
|
||||
overwrites the Git configuration with the appropriate settings to fetch
|
||||
from the GitLab repository.
|
||||
|
||||
`CI_REPO_CACHE_CREDENTIALS` must contain the Google Cloud service account
|
||||
JSON for uploading to the `gitlab-ci-git-repo-cache` bucket.
|
||||
|
||||
Note that this bucket should be located in the same continent as the
|
||||
runner, or [you can incur network egress charges](https://cloud.google.com/storage/pricing).
|
||||
|
||||
## `config.toml`
|
||||
|
||||
The full contents of our `config.toml` are:
|
||||
|
|
|
@ -730,7 +730,6 @@ and included in `rules` definitions via [YAML anchors](../ci/yaml/yaml_optimizat
|
|||
| `if-dot-com-gitlab-org-and-security-merge-request` | Limit jobs creation to merge requests for the `gitlab-org` and `gitlab-org/security` groups on GitLab.com. | |
|
||||
| `if-dot-com-gitlab-org-and-security-tag` | Limit jobs creation to tags for the `gitlab-org` and `gitlab-org/security` groups on GitLab.com. | |
|
||||
| `if-dot-com-ee-schedule` | Limits jobs to scheduled pipelines for the `gitlab-org/gitlab` project on GitLab.com. | |
|
||||
| `if-cache-credentials-schedule` | Limits jobs to scheduled pipelines with the `$CI_REPO_CACHE_CREDENTIALS` variable set. | |
|
||||
| `if-security-pipeline-merge-result` | Matches if the pipeline is for a security merge request triggered by `@gitlab-release-tools-bot`. | |
|
||||
|
||||
<!-- vale gitlab.Substitutions = YES -->
|
||||
|
@ -823,60 +822,6 @@ allows Gitaly to serve the full CI/CD fetch traffic now. See [Git fetch caching]
|
|||
The pre-clone step works by using the `CI_PRE_CLONE_SCRIPT` variable
|
||||
[defined by GitLab.com shared runners](../ci/runners/runner_cloud/linux_runner_cloud.md#pre-clone-script).
|
||||
|
||||
The `CI_PRE_CLONE_SCRIPT` is defined as a project CI/CD variable:
|
||||
|
||||
```shell
|
||||
(
|
||||
echo "Downloading archived master..."
|
||||
wget -O /tmp/gitlab.tar.gz https://storage.googleapis.com/gitlab-ci-git-repo-cache/project-278964/gitlab-master-shallow.tar.gz
|
||||
|
||||
if [ ! -f /tmp/gitlab.tar.gz ]; then
|
||||
echo "Repository cache not available, cloning a new directory..."
|
||||
exit
|
||||
fi
|
||||
|
||||
rm -rf $CI_PROJECT_DIR
|
||||
echo "Extracting tarball into $CI_PROJECT_DIR..."
|
||||
mkdir -p $CI_PROJECT_DIR
|
||||
cd $CI_PROJECT_DIR
|
||||
tar xzf /tmp/gitlab.tar.gz
|
||||
rm -f /tmp/gitlab.tar.gz
|
||||
chmod a+w $CI_PROJECT_DIR
|
||||
)
|
||||
```
|
||||
|
||||
The first step of the script downloads `gitlab-master.tar.gz` from
|
||||
Google Cloud Storage. There is a [GitLab CI job named `cache-repo`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/cache-repo.gitlab-ci.yml#L5)
|
||||
that is responsible for keeping that archive up-to-date. Every two hours
|
||||
on a scheduled pipeline, it does the following:
|
||||
|
||||
1. Creates a fresh clone of the `gitlab-org/gitlab` repository on GitLab.com.
|
||||
1. Saves the data as a `.tar.gz`.
|
||||
1. Uploads it into the Google Cloud Storage bucket.
|
||||
|
||||
When a CI job runs with this configuration, the output looks something like this:
|
||||
|
||||
```shell
|
||||
$ eval "$CI_PRE_CLONE_SCRIPT"
|
||||
Downloading archived master...
|
||||
Extracting tarball into /builds/group/project...
|
||||
Fetching changes...
|
||||
Reinitialized existing Git repository in /builds/group/project/.git/
|
||||
```
|
||||
|
||||
Note that the `Reinitialized existing Git repository` message shows that
|
||||
the pre-clone step worked. The runner runs `git init`, which
|
||||
overwrites the Git configuration with the appropriate settings to fetch
|
||||
from the GitLab repository.
|
||||
|
||||
`CI_REPO_CACHE_CREDENTIALS` contains the Google Cloud service account
|
||||
JSON for uploading to the `gitlab-ci-git-repo-cache` bucket. (If you're a
|
||||
GitLab Team Member, find credentials in the
|
||||
[GitLab shared 1Password account](https://about.gitlab.com/handbook/security/#1password-for-teams).
|
||||
|
||||
Note that this bucket should be located in the same continent as the
|
||||
runner, or [you can incur network egress charges](https://cloud.google.com/storage/pricing).
|
||||
|
||||
---
|
||||
|
||||
[Return to Development documentation](index.md)
|
||||
|
|
|
@ -6,9 +6,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Composer packages in the Package Registry **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/15886) in GitLab Premium 13.2.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - Support for Composer 2.0 [added](https://gitlab.com/gitlab-org/gitlab/-/issues/259840) in GitLab Free 13.10.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/15886) in GitLab 13.2.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
> - Support for Composer 2.0 [added](https://gitlab.com/gitlab-org/gitlab/-/issues/259840) in GitLab 13.10.
|
||||
|
||||
WARNING:
|
||||
The Composer package registry for GitLab is under development and isn't ready for production use due to
|
||||
|
|
|
@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Conan packages in the Package Registry **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/8248) in GitLab Premium 12.6.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/8248) in GitLab 12.6.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
WARNING:
|
||||
The Conan package registry for GitLab is under development and isn't ready for production use due to
|
||||
|
@ -265,7 +265,8 @@ conan upload Hello/0.1@mycompany/beta --all
|
|||
|
||||
## Publish a Conan package by using CI/CD
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11678) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11678) in GitLab 12.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
To work with Conan commands in [GitLab CI/CD](../../../ci/index.md), you can
|
||||
use `CI_JOB_TOKEN` in place of the personal access token in your commands.
|
||||
|
|
|
@ -157,7 +157,7 @@ To use CI/CD to authenticate, you can use:
|
|||
- A [CI job token](../../../ci/jobs/ci_job_token.md).
|
||||
|
||||
```shell
|
||||
docker login -u $CI_JOB_USER -p $CI_JOB_TOKEN $CI_REGISTRY
|
||||
docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
|
||||
```
|
||||
|
||||
- A [deploy token](../../project/deploy_tokens/index.md#gitlab-deploy-token) with the minimum scope of:
|
||||
|
|
|
@ -6,11 +6,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Dependency Proxy **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7934) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.11.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/273655) to GitLab Free in GitLab 13.6.
|
||||
> - [Support for private groups](https://gitlab.com/gitlab-org/gitlab/-/issues/11582) in GitLab Free 13.7.
|
||||
> - Anonymous access to images in public groups is no longer available starting in GitLab Free 13.7.
|
||||
> - [Support for pull-by-digest and Docker version 20.x](https://gitlab.com/gitlab-org/gitlab/-/issues/290944) in GitLab Free 13.10.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7934) in GitLab 11.11.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/273655) from GitLab Premium to GitLab Free in 13.6.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11582) support for private groups in GitLab 13.7.
|
||||
> - Anonymous access to images in public groups is no longer available starting in GitLab 13.7.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/290944) support for pull-by-digest and Docker version 20.x in GitLab 13.10.
|
||||
|
||||
The GitLab Dependency Proxy is a local proxy you can use for your frequently-accessed
|
||||
upstream images.
|
||||
|
@ -59,7 +59,7 @@ Prerequisites:
|
|||
|
||||
### Authenticate with the Dependency Proxy
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11582) in GitLab Free 13.7.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11582) in GitLab 13.7.
|
||||
> - It's [deployed behind a feature flag](../../feature_flags.md), enabled by default.
|
||||
> - It's enabled on GitLab.com.
|
||||
> - It's recommended for production use.
|
||||
|
@ -98,7 +98,7 @@ Proxy.
|
|||
#### Authenticate within CI/CD
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/280582) in GitLab 13.7.
|
||||
> - Automatic runner authentication [added](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27302) in GitLab 13.9.
|
||||
> - Automatic runner authentication, when using the Dependency Proxy to pull the image for the job, was [added](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27302) in GitLab 13.9.
|
||||
> - The prefix for group names containing uppercase letters was [fixed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54559) in GitLab 13.10.
|
||||
|
||||
Runners log in to the Dependency Proxy automatically. To pull through
|
||||
|
@ -134,6 +134,32 @@ Proxy manually without including the port:
|
|||
docker pull gitlab.example.com:443/my-group/dependency_proxy/containers/alpine:latest
|
||||
```
|
||||
|
||||
Example when using the Dependency Proxy to build an image:
|
||||
|
||||
```plaintext
|
||||
# Dockerfile
|
||||
FROM gitlab.example.com:443/my-group/dependency_proxy/containers/alpine:latest
|
||||
```
|
||||
|
||||
```yaml
|
||||
# .gitlab-ci.yml
|
||||
image: docker:19.03.12
|
||||
|
||||
variables:
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
|
||||
services:
|
||||
- docker:19.03.12-dind
|
||||
|
||||
build:
|
||||
image: docker:19.03.12
|
||||
before_script:
|
||||
- docker login -u $CI_DEPENDENCY_PROXY_USER -p $CI_DEPENDENCY_PROXY_PASSWORD $CI_DEPENDENCY_PROXY_SERVER
|
||||
script:
|
||||
- docker build -t test .
|
||||
```
|
||||
|
||||
You can also use [custom CI/CD variables](../../../ci/variables/index.md#custom-cicd-variables) to store and access your personal access token or deploy token.
|
||||
|
||||
### Store a Docker image in Dependency Proxy cache
|
||||
|
@ -189,7 +215,7 @@ If you clear the cache, the next time a pipeline runs it must pull an image or t
|
|||
|
||||
### Cleanup policies
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/294187) in GitLab Free 14.4.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/294187) in GitLab 14.4.
|
||||
|
||||
The cleanup policy is a scheduled job you can use to clear cached images that are no longer used,
|
||||
freeing up additional storage space. The policies use time-to-live (TTL) logic:
|
||||
|
@ -229,7 +255,7 @@ files are ignored and new files are downloaded and cached from the external regi
|
|||
|
||||
## Docker Hub rate limits and the Dependency Proxy
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/241639) in GitLab Free 13.7.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/241639) in GitLab 13.7.
|
||||
|
||||
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
|
||||
Watch how to [use the Dependency Proxy to help avoid Docker Hub rate limits](https://youtu.be/Nc4nUo7Pq08).
|
||||
|
|
|
@ -108,7 +108,7 @@ API or the UI.
|
|||
|
||||
#### Do not allow duplicate Generic packages
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/293755) in GitLab Free 13.12.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/293755) in GitLab 13.12.
|
||||
|
||||
To prevent users from publishing duplicate generic packages, you can use the [GraphQl API](../../../api/graphql/reference/index.md#packagesettings)
|
||||
or the UI.
|
||||
|
|
|
@ -6,11 +6,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Go proxy for GitLab **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27376) in GitLab Premium 13.1.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27376) in GitLab 13.1.
|
||||
> - It's deployed behind a feature flag, disabled by default.
|
||||
> - It's disabled for GitLab.com.
|
||||
> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-the-go-proxy).
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
WARNING:
|
||||
The Go package registry for GitLab is under development and isn't ready for production use due to
|
||||
|
|
|
@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Maven packages in the Package Repository **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5811) in GitLab Premium 11.3.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5811) in GitLab 11.3.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
Publish [Maven](https://maven.apache.org) artifacts in your project's Package Registry.
|
||||
Then, install the packages whenever you need to use them as a dependency.
|
||||
|
@ -222,8 +222,8 @@ The `name` must be `Private-Token`.
|
|||
|
||||
### Authenticate with a deploy token in Maven
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/213566) deploy token authentication in [GitLab Premium](https://about.gitlab.com/pricing/) 13.0.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/213566) deploy token authentication in GitLab 13.0.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
To use a deploy token, add this section to your
|
||||
[`settings.xml`](https://maven.apache.org/settings.html) file.
|
||||
|
@ -418,8 +418,8 @@ repositories {
|
|||
|
||||
### Group-level Maven endpoint
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8798) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8798) in GitLab 11.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
If you rely on many packages, it might be inefficient to include the `repository` section
|
||||
with a unique URL for each package. Instead, you can use the group-level endpoint for
|
||||
|
@ -476,8 +476,8 @@ repositories {
|
|||
|
||||
### Instance-level Maven endpoint
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8274) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8274) in GitLab 11.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
If you rely on many packages, it might be inefficient to include the `repository` section
|
||||
with a unique URL for each package. Instead, you can use the instance-level endpoint for
|
||||
|
@ -619,7 +619,7 @@ To delete these older package versions, consider using the Packages API or the U
|
|||
|
||||
#### Do not allow duplicate Maven packages
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/296895) in GitLab Free 13.9.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/296895) in GitLab 13.9.
|
||||
|
||||
To prevent users from publishing duplicate Maven packages, you can use the [GraphQl API](../../../api/graphql/reference/index.md#packagesettings) or the UI.
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# npm packages in the Package Registry **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5934) in GitLab Premium 11.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5934) in GitLab 11.7.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
Publish npm packages in your project's Package Registry. Then install the
|
||||
packages whenever you need to use them as a dependency.
|
||||
|
@ -164,8 +164,8 @@ If you encounter an error with [Yarn](https://classic.yarnpkg.com/en/), view
|
|||
|
||||
### Authenticate with a CI job token
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9104) in GitLab Premium 12.5.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9104) in GitLab 12.5.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
If you're using npm with GitLab CI/CD, a CI job token can be used instead of a personal access token or deploy token.
|
||||
The token inherits the permissions of the user that generates the pipeline.
|
||||
|
@ -442,8 +442,8 @@ and use your organization's URL. The name is case-sensitive and must match the n
|
|||
|
||||
### npm metadata
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11867) in GitLab Premium 12.6.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11867) in GitLab 12.6.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
> - [Improved](https://gitlab.com/gitlab-org/gitlab/-/issues/330929) in GitLab 14.5.
|
||||
|
||||
The GitLab Package Registry exposes the following attributes to the npm client.
|
||||
|
@ -466,8 +466,8 @@ These are similar to the [abbreviated metadata format](https://github.com/npm/re
|
|||
|
||||
## Add npm distribution tags
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9425) in GitLab Premium 12.8.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9425) in GitLab 12.8.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
You can add [distribution tags](https://docs.npmjs.com/cli/dist-tag/) to newly-published packages.
|
||||
Tags are optional and can be assigned to only one package at a time.
|
||||
|
|
|
@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# NuGet packages in the Package Registry **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20050) in GitLab Premium 12.8.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/20050) in GitLab 12.8.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
> - Symbol package support [added](https://gitlab.com/gitlab-org/gitlab/-/issues/262081) in GitLab 14.1.
|
||||
|
||||
Publish NuGet packages in your project's Package Registry. Then, install the
|
||||
|
|
|
@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Package Registry **(FREE)**
|
||||
|
||||
> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
With the GitLab Package Registry, you can use GitLab as a private or public registry for a variety
|
||||
of [supported package managers](#supported-package-managers).
|
||||
|
|
|
@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# PyPI packages in the Package Registry **(FREE)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/208747) in GitLab Premium 12.10.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) to GitLab Free in 13.3.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/208747) in GitLab 12.10.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/221259) from GitLab Premium to GitLab Free in 13.3.
|
||||
|
||||
Publish PyPI packages in your project's Package Registry. Then install the
|
||||
packages whenever you need to use them as a dependency.
|
||||
|
|
|
@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# Ruby gems in the Package Registry **(FREE)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/803) in [GitLab Free](https://about.gitlab.com/pricing/) 13.10.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/803) in GitLab 13.10.
|
||||
|
||||
WARNING:
|
||||
The Ruby gems package registry for GitLab is under development and isn't ready for production use due to
|
||||
|
|
|
@ -4,7 +4,7 @@ group: Package
|
|||
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
|
||||
---
|
||||
|
||||
# Monorepo package management workflows
|
||||
# Monorepo package management workflows **(FREE)**
|
||||
|
||||
One project or Git repository can contain multiple different subprojects or submodules that are all
|
||||
packaged and published individually.
|
||||
|
|
|
@ -69,11 +69,7 @@ module Gitlab
|
|||
end
|
||||
|
||||
def observe_histogram
|
||||
if project.github_import?
|
||||
duration_histogram.observe({ project: project.full_path }, duration)
|
||||
else
|
||||
duration_histogram.observe({ importer: importer }, duration)
|
||||
end
|
||||
duration_histogram.observe({ importer: importer }, duration)
|
||||
end
|
||||
|
||||
def track_finish_metric
|
||||
|
|
|
@ -2133,6 +2133,9 @@ msgstr ""
|
|||
msgid "Add variable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add vulnerability finding"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add webhook"
|
||||
msgstr ""
|
||||
|
||||
|
@ -38397,6 +38400,9 @@ msgstr ""
|
|||
msgid "VulnerabilityManagement|A true-positive and will fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "VulnerabilityManagement|Add vulnerability finding"
|
||||
msgstr ""
|
||||
|
||||
msgid "VulnerabilityManagement|Change status"
|
||||
msgstr ""
|
||||
|
||||
|
@ -38412,6 +38418,9 @@ msgstr ""
|
|||
msgid "VulnerabilityManagement|Fetching linked Jira issues"
|
||||
msgstr ""
|
||||
|
||||
msgid "VulnerabilityManagement|Manually add a vulnerability entry into the vulnerability report."
|
||||
msgstr ""
|
||||
|
||||
msgid "VulnerabilityManagement|Needs triage"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -94,20 +94,6 @@ RSpec.describe Gitlab::Import::Metrics, :aggregate_failures do
|
|||
expect(histogram).to have_received(:observe).with({ importer: :test_importer }, anything)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when project is a github import' do
|
||||
before do
|
||||
project.import_type = 'github'
|
||||
end
|
||||
|
||||
it 'emits importer metrics' do
|
||||
expect(subject).to receive(:track_usage_event).with(:github_import_project_success, project.id)
|
||||
|
||||
subject.track_finished_import
|
||||
|
||||
expect(histogram).to have_received(:observe).with({ project: project.full_path }, anything)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#issues_counter' do
|
||||
|
|
|
@ -10,7 +10,7 @@ module RspecFlaky
|
|||
# This class is responsible for loading/saving JSON reports, and pruning
|
||||
# outdated examples.
|
||||
class Report < SimpleDelegator
|
||||
OUTDATED_DAYS_THRESHOLD = 7
|
||||
OUTDATED_DAYS_THRESHOLD = 30
|
||||
|
||||
attr_reader :flaky_examples
|
||||
|
||||
|
|
Loading…
Reference in a new issue