私は .gitlab-ci.yml ファイルを典型的な 3 つのステージ (テスト、ビルド、デプロイ) でセットアップしました。ビルド段階で、プロジェクトをコンパイルして tarball に入れるコマンドを実行します。ビルド ステージはデプロイ ステージに移行するため、正常に実行されたように見えますが、デプロイ ステージで tarball が見つからないことが示されます。別のディレクトリにありますか?それがどうなったのか?ありがとう。
2 に答える
テストごとに gitlab-ci がビルド フォルダーを消去するため、ビルド ステージの出力ファイルはデプロイ ステージでは使用できません。
展開段階でもプロジェクトを再構築する必要があります。
「ステージ」は、テストを順序付けする場合にのみ役立ちます。つまり、ビルド テストが失敗した場合にデプロイ テストを試行しないようにします。
EDIT:Gitlab 8.6以降、依存関係機能を使用することが可能です
(GitLab 8.4 で) 同じ動作を見て驚いた。
私はcmake
makefile を作成make
し、ビルドしmake test
、テストを実行していました。これらすべてをbuild/
ディレクトリで実行します。
何度も繰り返して、どのステップが失敗しているかを簡単に特定したくありません。そのため、さまざまなgitlab-ciステージを作成しました。cmake
make
test
build
cache
cache:
key: "$CI_BUILD_REF_NAME"
untracked: true
paths:
- build/
key
このオプションにより、同じブランチで動作するすべてのステージで同じビルド ディレクトリが維持されると思います。こちらの gitlab-ci ドキュメントを参照してください: http://doc.gitlab.com/ce/ci/yaml/README.html#cache
編集:これにはを使用しないでくださいcache
! GitLab は、8.4 のステージ間で再利用可能なアーティファクトを実装しました: https://gitlab.com/gitlab-org/gitlab-ce/issues/3423
これをサポートするには、CI ランナーを適応させる必要があります。参照: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/336