12

私は .gitlab-ci.yml ファイルを典型的な 3 つのステージ (テスト、ビルド、デプロイ) でセットアップしました。ビルド段階で、プロジェクトをコンパイルして tarball に入れるコマンドを実行します。ビルド ステージはデプロイ ステージに移行するため、正常に実行されたように見えますが、デプロイ ステージで tarball が見つからないことが示されます。別のディレクトリにありますか?それがどうなったのか?ありがとう。

4

2 に答える 2

6

テストごとに gitlab-ci がビルド フォルダーを消去するため、ビルド ステージの出力ファイルはデプロイ ステージでは使用できません。

展開段階でもプロジェクトを再構築する必要があります。

「ステージ」は、テストを順序付けする場合にのみ役立ちます。つまり、ビルド テストが失敗した場合にデプロイ テストを試行しないようにします。

EDIT:Gitlab 8.6以降、依存関係機能を使用することが可能です

于 2015-10-29T14:16:53.333 に答える
4

(GitLab 8.4 で) 同じ動作を見て驚いた。

私はcmakemakefile を作成makeし、ビルドしmake test、テストを実行していました。これらすべてをbuild/ディレクトリで実行します。

何度も繰り返して、どのステップが失敗しているかを簡単に特定したくありません。そのため、さまざまなgitlab-ciステージを作成しました。cmakemaketestbuildcache

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

于 2016-01-26T21:07:30.003 に答える