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
最近来源活动
2026年3月2日 12:15
检测到的 SKILL.md 语言
英语
星标
62
分支
20

安装方式

默认使用会先检查来源的 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 查看