2017-09-15 7 views
1

Gitlab-CIを使用してステージ間でbuildディレクトリを解析する際に問題があります。gitlab-ciランナーで有効期限が異なる複数のパス

Gitlab-CIは、奇妙に思える段階の間に作成されたビルドアーティファクトを拭き取ります。ビルドステージとテストステージの間にビルド成果物を保存しようとしていますが、ビルドステージにはビルドアーチファクトと次のステージを実行するために必要なビルドアーチファクトもあります。

artifactsオプションを使用して、異なるパスで複数の有効期限を設定することはできますか?

paths(.dmg)が宣言されていないので、paths(ビルド/テスト*パス)の2番目の定義のみを保持しています。

artifacts: 
    paths: 
    - build/*.dmg 
    expire_in: 1 week 
    paths: 
    - build/test1 
    - build/test2 
    - build/test3 
    expire_in: 15 mins 

しかし私は、その作業を取得するように見えることができない...任意の提案は素晴らしいいただければ幸いですcachesを使用して試してみました!

答えて

2

ドキュメントによれば、それは可能ではないようですが、同様のことをする必要がありました。

すべてのアーティファクトを生成するビルドの段階では、有効期限が異なるアーティファクトを含むすべてのアーティファクトに対して15分の有効期限を設定しました。あなたの場合はbuild/*.dmgです。だから、ビルドセクションのための私の成果物の定義は次のようになります:

artifacts: 
    paths: 
    - build/*.dmg 
    - build/test1 
    - build/test2 
    - build/test3 
    expire_in: 15 mins 

私は、パイプラインの次のステージに2つのジョブを定義した後。これを行うと、2つのジョブが同時に実行されます。ジョブの1つは、最初にファイル用に意図したものです:​​、build/test2およびbuild/test3。パイプラインのこの段階での他の仕事は、スクリプトセクションには実質的に何もないでしょう。echo "dummy job"のようなものでしょう。

artifacts: 
    paths: 
    - build/*.dmg 
    expire_in: 1 week 

それをダミージョブが前のジョブからのビルド成果物を受け取るのでしかし、我々は単純にそうように同じファイルを使用して第二のアーチファクトを作成することで、週に15分からexoiry「変更」にそれを使用することができます私たちは15分の有効期限と1週間の有効期限を持つものを持つので、それはターゲットアーティファクトを複製するので、貧弱な回避策です。

+0

お返事ありがとうございます!あなたがそれをカプセル化しているより多くの情報を与えることができる機会はありますか?だから、最初の仕事はダミーのステージを作り、その後ビルドを行う仕事は人工物しか持っていないのですか? – Rekovni

+1

私は自分自身をより良く説明しようとしました。私は今より一貫しているといい、英語は私にとっては第二言語です。 –

+0

ああ、私はつかんでいます - ありがとう – Rekovni

関連する問題