私はGitLab CIをプロジェクトに使用しています。プロセスの最初のステップはnpm install
です。私はnode_modules
をキャッシュして、後で同じジョブをすばやく実行できるようにし、ビルド成果物として後のステージで使用するように定義します。ただし、node_modules
をキャッシュして最新の状態にしていても、install_packages
ジョブが実行されるたびにnpm install
を呼び出すのには、コマンドがpackage.json
のすべてを通過し、パッケージなどの更新をチェックするため、時間がかかります。package.jsonが更新されたときにGitLab CIで 'npm install'のみ
何らかの状態によってはinstall_packages
ジョブでのみが実行npm install
になりますか?より具体的には(私が考えているのはベストソリューションでしょう)、package.json
が最後のビルドから変更されているかどうかは関係ありませんか?以下は
私.gitlab-ci.ymlファイルの関連部分さ:
image: node:6.9.1
stages:
- install
- prepare
- deploy
install_packages:
stage: install
script:
- npm prune
- npm install
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
artifacts:
paths:
- node_modules/
only:
- master
- develop
build_and_test:
stage: prepare
script:
#do_stuff...
deploy_production:
stage: deploy
#do_stuff...
deploy_staging:
stage: deploy
#do_stuff...
これは、このトリックを行うようなものですが、さらに指定することはできますか?コマンドは正確に何をすべきですか? 'npm install --cache'は私の知る限り存在しません。または、あなたは[npm cache](https://docs.npmjs.com/cli/cache)cliコマンドについて話していますか?私はGitLab CIでこれをどのように使用するかについてはわかりません。 – JorJor
@JorJorこれは私がGitLab CI統合のために見つけたものです。希望があれば – Jaxi
@JorJor https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/97 – Jaxi