Skip to main content

gitlab-ci-artifacts-caching

Use when configuring artifacts for inter-job data passing or caching for faster builds. Covers cache strategies and artifact management.

Quellinformationen

Repository
diegosouzapw/awesome-omni-skill
Letzte Quellaktivität
2. März 2026 um 12:15
Erkannte Sprache von SKILL.md
Englisch
Sterne
62
Forks
20

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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
["Read","Write","Edit","Bash","Grep","Glob"]
# GitLab CI - Artifacts & Caching Configure artifacts and caching for efficient pipeline execution. ## Artifacts ### Basic Artifact Configuration ```yaml build: script: - npm run build artifacts: paths: - dist/ expire_in: 1 week ``` ### Artifact Reports ```yaml test: script: - npm test -- --coverage artifacts: reports: junit: junit.xml coverage_report: coverage_format: cobertura path: coverage/cobertura-coverage.xml ``` ### Conditional Artifacts ```yaml build: artifacts: paths: - dist/ when: on_success # on_success, on_failure, always exclude: - dist/**/*.map ``` ### Artifact Dependencies ```yaml build: artifacts: paths: - dist/ test: dependencies: - build # Downloads build artifacts script: - npm test deploy: dependencies: [] # Skip all artifact downloads script: - ./deploy.sh ``` ## Caching ### Basic Cache Configuration ```yaml default: cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules/ - .npm/ ``` ### Cache Key Strategies ```yaml # 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/ ``` ### Cache Policy ```yaml 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 ``` ### Fallback Keys ```yaml cache: key: ${CI_COMMIT_REF_SLUG} fallback_keys: - ${CI_DEFAULT_BRANCH} - main paths: - node_modules/ ``` ## Distributed Cache (S3) Configure in GitLab Runner: ```toml [runners.cache] Type = "s3" Shared = true [runners.cache.s3] ServerAddress = "s3.amazonaws.com" BucketName = "gitlab-runner-cache" BucketLocation = "us-east-1" ``` ## Artifacts vs Cache | 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) | ## Best Practices 1. Use cache for dependencies (node_modules, vendor) 2. Use artifacts for build outputs 3. Set appropriate expiration times 4. Use lock file-based cache keys 5. Exclude source maps and unnecessary files 6. Use `policy: pull` for jobs that only read cache
Auf GitHub ansehen