2つのジョブ間でファイルを共有し、変更されたファイルがある場合は変更したい。 pythonスクリプトはcache.json
ファイルを変更して、時々cahceファイルを変更します。
.gitlab-ci.yaml
:
image: ubuntu
stages:
- test
cache:
key: one-cache
paths:
- cache.json
job1:
stage: test
script:
# - touch cache.json
- cat cache.json
- python3 modify_json_file.py
- cat cache.json
問題は、cache.json
ファイルは、次のジョブ実行時に存在しません。エラーメッセージが表示されます:cat: cache.json: No such file or directory
。また、タッチコマンドを一度挿入しましたが、タッチコマンドなしで次に実行しても何も変わりません。
何か間違っているのか、gitlabのcache
を理解していないのか。
キャッシュではなくアーティファクトが必要だと思います。
キャッシュとアーティファクト から:
cache-プロジェクトの依存関係の一時ストレージに使用します。 jarファイルやapkファイルなどの中間ビルド結果を保持するのには役立ちません。キャッシュは、依存関係(npmパッケージ、Goベンダーパッケージなど)を保持することにより、特定のジョブの後続の実行の呼び出しを高速化するために使用されるように設計されているため、パブリックから再取得する必要はありませんインターネット。キャッシュは、ステージ間で中間ビルド結果を渡すために悪用される可能性がありますが、アーティファクトがより適している場合があります。
アーティファクト-ステージ間で渡されるステージ結果に使用します。アーティファクトは、コンパイル/生成されたビルドの一部をアップロードするように設計されており、任意の数の並行ランナーがフェッチできます。それらは利用可能であることが保証されており、ジョブ間でデータを渡すためにあります。また、UIからダウンロードされるように公開されます。