私は.gitlab-ci.yml(http://doc.gitlab.com/ce/ci/yaml/README.html#cache)に 'cache'を使用しようとしています。マイgitlabのバージョンは8.2.1で、私のランナーは、次のとおりです。gitlab 8.2.1、.gitlab-ci.ymlのキャッシュの使い方
$ docker exec -it gitlab-runner gitlab-runner -v
gitlab-runner version 0.7.2 (998cf5d)
だから、ドキュメントによると、すべてが最新のものであるが、私はキャッシュを;-(使用することができないんだ私のすべてのファイルは常に削除されます。 。私が何か間違ったことをやっているか?
キャッシュアーカイブが作成されますが、次のジョブに渡されていません。ここで
は、ジョブの$ cat .gitlab-ci.yml
stages:
- createcache
- testcache
createcache:
type: createcache
cache:
untracked: true
paths:
- doc/
script:
- touch doc/cache.txt
testcache:
type: testcache
cache:
untracked: true
paths:
- doc/
script:
- find .
- ls doc/cache.txt
出力私.gitlab-ci.ymlは ' createcache '
Running on runner-141d90d4-project-2-concurrent-0 via 849d416b5994...
Fetching changes...
HEAD is now at 2ffbadb MUST BE REVERTED
[...]
$ touch doc/cache.txt
[...]
Archiving cache...
INFO[0000] Creating archive cache.tgz ...
INFO[0000] Done!
Build succeeded.
ジョブの出力「testcache」
Running on runner-141d90d4-project-2-concurrent-0 via 849d416b5994...
Fetching changes...
Removing doc/cache.txt
[...]
$ ls doc/cache.txt
ls: cannot access doc/cache.txt: No such file or directory
ERROR: Build failed with: exit code 1
私の回避策私の問題を回避するには、/ cacheディレクトリに何があるかをuntarに手動で
...私はそれがないかなり確信していますキャッシュを使用する正しい方法...
$ cat .gitlab-ci.yml
stages:
- build
- test
- deploy
image: ubuntu:latest
before_script:
- export CACHE_FILE=`echo ${CI_PROJECT_DIR}/createcache/${CI_BUILD_REF_NAME}/cache.tgz | sed -e "s|/builds|/cache|"`
createcache:
type: build
cache:
untracked: true
paths:
- doc/
script:
- find . | grep -v ".git"
- mkdir -p doc
- touch doc/cache.txt
testcache:
type: test
script:
- env
- find . | grep -v ".git"
- tar xvzf ${CACHE_FILE}
- ls doc/cache.txt
CI linterは 'test:cache configには未知のキーが含まれています:group' – Kyslik
@Kyslikこれは' cache:key'に置き換えられました。 https://gitlab.com/gitlab-org/gitlab-runner/commit/d34f76f86a7c2fc4d399e9922175bcc614434016とhttps://docs.gitlab.com/ee/ci/yaml/#cache-key –