2017-06-27 8 views
1

GitLab CIの1つのステージから次のステージへの環境変数はexportですか?私はjob artifactsの機能に似た何かを探していますが、ファイルではなく環境変数のためだけです。GitLab CIの1つのステージから次のステージへの環境変数のエクスポートCI

私がconfigureステージでビルドを構成していて、次のステージを使用するための(秘密で保護された)環境変数として結果を保存したいとしましょう。私はファイルの設定を安全にして仕事の成果物として保存することができますが、誰もがダウンロードできるよりもファイルで利用できる秘密が気になります。

答えて

0

この機能はまだここにはありませんが、このトピックについては既にissueがあります。

私は、変数をファイルに保存し、それらをキャッシュすることをお勧めします。これらの変数はダウンロードできず、ジョブの終了時に削除されるからです。 100%確実にするには、手動で削除できます。 clean_upステージをご覧ください。

cache: 
paths: 
    - save_file 

stages: 
- job_name_1 
- job_name_2 
- clean_up 

job_name_1: 
script: 
    - (your_task) >> save_file 

job_name_2: 
script: 
    - cat save_file | do_something_with_content 

clean_up: 
script: 
    - rm save_file 
when: always 
+0

キャッシュの問題点は、[保証](https://docs.gitlab.com/ee/ci/yaml/#cache)キャッシュされたデータは、次のステージになりますが存在しないこと、です。キャッシュが利用できないときにキャッシュの内容を生成したコマンドを再実行する方法があった場合、Makefileの依存関係に似ています。 –

+0

本当に、私はこの少し重要な部分をオーバーライドしましたが、成果物がユーザーに提供される前にファイルを削除するので、アーティファクトで私の例を使用することはできます。 しかし、もっと良い解決策は、 'expire_in'コマンドを使って' 0 sec'に設定することです。これにより、ビルド上のポイントからのダウンロードが完了しないようになり、実際のファイルは1時間以内に削除されます。 https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts-expire_in – secustor

関連する問題