Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ci/caching/index.md')
-rw-r--r--doc/ci/caching/index.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/ci/caching/index.md b/doc/ci/caching/index.md
index e8b22a24017..08a45714de3 100644
--- a/doc/ci/caching/index.md
+++ b/doc/ci/caching/index.md
@@ -316,6 +316,37 @@ rspec:
- rspec spec
```
+If you have jobs that each need a different selection of gems, use the `prefix`
+keyword in the global `cache` definition. This configuration generates a different
+cache for each job.
+
+For example, a testing job might not need the same gems as a job that deploys to
+production:
+
+```yaml
+cache:
+ key:
+ files:
+ - Gemfile.lock
+ prefix: ${CI_JOB_NAME}
+ paths:
+ - vendor/ruby
+
+test_job:
+ stage: test
+ before_script:
+ - bundle install --without production --path vendor/ruby
+ script:
+ - bundle exec rspec
+
+deploy_job:
+ stage: production
+ before_script:
+ - bundle install --without test --path vendor/ruby
+ script:
+ - bundle exec deploy
+```
+
### Caching Go dependencies
Assuming your project is using [Go Modules](https://github.com/golang/go/wiki/Modules) to install