Use when configuring artifacts for inter-job data passing or caching for faster builds. Covers cache strategies and artifact management.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
name: gitlab-ci-artifacts-caching description: Use when configuring artifacts for inter-job data passing or caching for faster builds. Covers cache strategies and artifact management. allowed-tools:
Configure artifacts and caching for efficient pipeline execution.
build:
script:
- npm run build
artifacts:
paths:
- dist/
expire_in: 1 week
test:
script:
- npm test -- --coverage
artifacts:
reports:
junit: junit.xml
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
build:
artifacts:
paths:
- dist/
when: on_success # on_success, on_failure, always
exclude:
- dist/**/*.map
build:
artifacts:
paths:
- dist/
test:
dependencies:
- build # Downloads build artifacts
script:
- npm test
deploy:
dependencies: [] # Skip all artifact downloads
script:
- ./deploy.sh
default:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .npm/
# Per-branch cache
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
# Lock file based cache
cache:
key:
files:
- package-lock.json
paths:
- node_modules/
# Combined key
cache:
key:
prefix: ${CI_JOB_NAME}
files:
- package-lock.json
paths:
- node_modules/
install:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
policy: push # Only upload cache
script:
- npm ci
test:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
policy: pull # Only download cache
script:
- npm test
cache:
key: ${CI_COMMIT_REF_SLUG}
fallback_keys:
- ${CI_DEFAULT_BRANCH}
- main
paths:
- node_modules/
Configure in GitLab Runner:
[runners.cache]
Type = "s3"
Shared = true
[runners.cache.s3]
ServerAddress = "s3.amazonaws.com"
BucketName = "gitlab-runner-cache"
BucketLocation = "us-east-1"
| Feature | Artifacts | Cache |
|---|---|---|
| Purpose | Pass data between jobs | Speed up job execution |
| Storage | GitLab server | Runner local or S3 |
| Reliability | Guaranteed | Best effort |
| Expiration | Configurable | Configurable |
| Cross-pipeline | Yes (with dependencies) | Yes (with keys) |
policy: pull for jobs that only read cache