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.

معلومات المصدر

المستودع
diegosouzapw/awesome-omni-skill
آخر نشاط في المصدر
٢ مارس ٢٠٢٦ في ١٢:١٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦٢
التفرعات
٢٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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
عرض على GitHub