Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
0a053e67
Commit
0a053e67
authored
Dec 01, 2021
by
Marcel Amirault
Committed by
Evan Read
Dec 01, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update style of other half of artifacts subkeys
parent
84e148c0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
121 additions
and
78 deletions
+121
-78
doc/ci/pipelines/job_artifacts.md
doc/ci/pipelines/job_artifacts.md
+62
-1
doc/ci/yaml/index.md
doc/ci/yaml/index.md
+59
-77
No files found.
doc/ci/pipelines/job_artifacts.md
View file @
0a053e67
...
...
@@ -48,7 +48,45 @@ is used.
If you run two types of pipelines (like branch and scheduled) for the same ref,
the pipeline that finishes later creates the job artifact.
For more examples, view the
[
keyword reference for the `.gitlab-ci.yml` file
](
../yaml/index.md#artifacts
)
.
To disable artifact passing, define the job with empty
[
dependencies
](
../yaml/index.md#dependencies
)
:
```
yaml
job
:
stage
:
build
script
:
make build
dependencies
:
[]
```
You may want to create artifacts only for tagged releases to avoid filling the
build server storage with temporary build artifacts. For example, use
[
`rules`
](
../yaml/index.md#rules
)
to create artifacts only for tags:
```
yaml
default-job
:
script
:
-
mvn test -U
rules
:
-
if
:
$CI_COMMIT_BRANCH
release-job
:
script
:
-
mvn package -U
artifacts
:
paths
:
-
target/*.war
rules
:
-
if
:
$CI_COMMIT_TAG
```
You can use wildcards for directories too. For example, if you want to get all the
files inside the directories that end with
`xyz`
:
```
yaml
job
:
artifacts
:
paths
:
-
path/*xyz/*
```
### Use CI/CD variables to define the artifacts name
...
...
@@ -153,6 +191,29 @@ artifacts:
-
binaries/temp/**/*
```
### Add untracked files to artifacts
Use
[
`artifacts:untracked`
](
../yaml/index.md#artifactsuntracked
)
to add all Git untracked
files as artifacts (along with the paths defined in
[
`artifacts:paths`
](
../yaml/index.md#artifactspaths
)
).
Save all Git untracked files and files in
`binaries`
:
```
yaml
artifacts
:
untracked
:
true
paths
:
-
binaries/
```
Save all untracked files but
[
exclude
](
../yaml/index.md#artifactsexclude
)
`*.txt`
:
```
yaml
artifacts
:
untracked
:
true
exclude
:
-
"
*.txt"
```
## Download job artifacts
You can download job artifacts or view the job archive:
...
...
doc/ci/yaml/index.md
View file @
0a053e67
...
...
@@ -819,63 +819,41 @@ job:
#### `artifacts:paths`
Paths are relative to the project directory (
`$CI_PROJECT_DIR`
) and can't directly
link outside it. You can use Wildcards that use
[
glob
](
https://en.wikipedia.org/wiki/Glob_(programming
)
)
patterns and:
link outside it.
-
In
[
GitLab Runner 13.0 and later
](
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
)
.
-
In GitLab Runner 12.10 and earlier,
[
`filepath.Match`
](
https://pkg.go.dev/path/filepath#Match
)
.
To restrict which jobs a specific job fetches artifacts from, see
[
dependencies
](
#dependencies
)
.
**Keyword type**
: Job keyword. You can use it only as part of a job or in the
[
`default:` section
](
#default
)
.
Send all files in
`binaries`
and
`.config`
:
**Possible inputs**
:
```
yaml
artifacts
:
pat
hs
:
-
binaries/
-
.config
```
-
An array of file paths, relative to the project directory.
-
You can use Wildcards that use
[
glob
](
https://en.wikipedia.org/wiki/Glob_(programming
)
)
pat
terns and
:
-
In
[
GitLab Runner 13.0 and later
](
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
)
.
-
In GitLab Runner 12.10 and earlier,
[
`filepath.Match`
](
https://pkg.go.dev/path/filepath#Match
)
.
To disable artifact passing, define the job with empty
[
dependencies
](
#dependencies
)
:
**Example of `artifacts:paths`**
:
```
yaml
job
:
stage
:
build
script
:
make build
dependencies
:
[]
artifacts
:
paths
:
-
binaries/
-
.config
```
You may want to create artifacts only for tagged releases to avoid filling the
build server storage with temporary build artifacts.
This example creates an artifact with
`.config`
and all the files in the
`binaries`
directory.
Create artifacts only for tags (
`default-job`
doesn't create artifacts):
```
yaml
default-job
:
script
:
-
mvn test -U
rules
:
-
if
:
$CI_COMMIT_BRANCH
**Additional details**
:
release-job
:
script
:
-
mvn package -U
artifacts
:
paths
:
-
target/*.war
rules
:
-
if
:
$CI_COMMIT_TAG
```
-
If not used with
[
`artifacts:name`
](
#artifactsname
)
defined, the artifacts file
is named
`artifacts`
, which becomes
`artifacts.zip`
when downloaded.
You can use wildcards for directories too. For example, if you want to get all the files inside the directories that end with
`xyz`
:
**Related topics**
:
```
yaml
job
:
artifacts
:
paths
:
-
path/*xyz/*
```
-
To restrict which jobs a specific job fetches artifacts from, see
[
`dependencies`
](
#dependencies
)
.
-
[
Create job artifacts
](
../pipelines/job_artifacts.md#create-job-artifacts
)
.
#### `artifacts:public`
...
...
@@ -887,20 +865,25 @@ job:
Use
`artifacts:public`
to determine whether the job artifacts should be
publicly available.
The default for
`artifacts:public`
is
`true`
which means that the artifacts in
public pipelines are available for download by anonymous and guest users:
```
yaml
artifacts
:
public
:
true
```
When
`artifacts:public`
is
`true`
(default), the artifacts in
public pipelines are available for download by anonymous and guest users.
To deny read access for anonymous and guest users to artifacts in public
pipelines, set
`artifacts:public`
to
`false`
:
**Keyword type**
: Job keyword. You can use it only as part of a job or in the
[
`default:` section
](
#default
)
.
**Possible inputs**
:
-
`true`
(default if not defined) or
`false`
.
**Example of `artifacts:paths`**
:
```
yaml
artifacts
:
public
:
false
job
:
artifacts
:
public
:
false
```
#### `artifacts:reports`
...
...
@@ -941,45 +924,44 @@ Use `artifacts:untracked` to add all Git untracked files as artifacts (along
with the paths defined in
`artifacts:paths`
).
`artifacts:untracked`
ignores configuration
in the repository's
`.gitignore`
file.
Send all Git untracked files:
**Keyword type**
: Job keyword. You can use it only as part of a job or in the
[
`default:` section
](
#default
)
.
```
yaml
artifacts
:
untracked
:
true
```
**Possible inputs**
:
Send all Git untracked files and files in
`binaries`
:
-
`true`
or
`false`
(default if not defined).
```
yaml
artifacts
:
untracked
:
true
paths
:
-
binaries/
```
**Example of `artifacts:untracked`**
:
S
end all untracked files but
[
exclude
](
#artifactsexclude
)
`*.txt`
:
S
ave all Git untracked files
:
```
yaml
artifacts
:
untracked
:
true
exclude
:
-
"
*.txt"
job
:
artifacts
:
untracked
:
true
```
**Related topics**
:
-
[
Add untracked files to artifacts
](
../pipelines/job_artifacts.md#add-untracked-files-to-artifacts
)
.
#### `artifacts:when`
Use
`artifacts:when`
to upload artifacts on job failure or despite the
failure.
`artifacts:when`
can be set to one of the following values:
**Keyword type**
: Job keyword. You can use it only as part of a job or in the
[
`default:` section
](
#default
)
.
**Possible inputs**
:
1.
`on_success`
(default): Upload artifacts only when the job succeeds.
1.
`on_failure`
: Upload artifacts only when the job fails.
1.
`always`
: Always upload artifacts. For example, when
[
uploading artifacts
](
../unit_test_reports.md#viewing-junit-screenshots-on-gitlab
)
required to
troubleshoot failing tests.
-
`on_success`
(default): Upload artifacts only when the job succeeds.
-
`on_failure`
: Upload artifacts only when the job fails.
-
`always`
: Always upload artifacts. For example, when
[
uploading artifacts
](
../unit_test_reports.md#viewing-junit-screenshots-on-gitlab
)
required to
troubleshoot failing tests.
For example, to upload artifacts only when a job fails
:
**Example of `artifacts:when`**
:
```
yaml
job
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment