2017-09-23 79 views
0

私はWPF C#プロジェクト用の.NET構成ファイルを作成しています。私のbuild_jobは、私のtest_jobがアクセスする必要があるdllを作成します。現在、私はこのような何かやってきました:gitlab-runnerのジョブ間でアーティファクトを共有するにはどうすればいいですか?

build_job: 
    stage: build 
    only: 
    - tags 
    script: 
    - '"%NUGET_PATH%" restore' 
    - '"%MSBUILD_PATH%" /p:Configuration=Release' 
    artifacts: 
    expire_in: 1 week 
    paths: 
     - "%RELEASE_FOLDER%AutoBuildWpfTest.exe" 
     - "%RELEASE_FOLDER%NLog.config" 
     - "%RELEASE_FOLDER%NLog.dll" 
     - "%TEST_FOLDER%Tests.dll" 

test_job: 
    stage: test 
    only: 
    - tags 
    script: 

    - '"%NUNIT_RUNNER_PATH%" %TEST_FOLDER%Tests.dll' 
    dependencies: 
    - build_job 

をこのアプローチの問題は、私のartifacts.zipファイルは今だけのテストのために必要であったが、実際の展開に必要されていないファイルで汚染されていることです。

私の質問は、artifacts.zipに表示されないジョブ間でファイルを共有するにはどうすればいいですか?

また、ディレクトリツリーを保存せずにartifacts.zipにファイルを追加する方法はありますか?

AutoBuildWpfTest \ binに\リリース\

ので、彼らはzip圧縮立ち上がったとき、あなたはそれらを開こう:あなたは、いくつかのかなり深いディレクトリで終わる.NETプロジェクトを構築する場合、例えば私の出力の実行ファイルはですあなたが望むファイルに到達するには、4つのフォルダレベルを通過する必要があります。理想的には、artifact.zipのルートにあるすべての出力ファイルが必要です。ありがとう。

build_job: 
    stage: build 
    only: 
    - tags 
    script: 
    - '"%NUGET_PATH%" restore' 
    - '"%MSBUILD_PATH%" /p:Configuration=Release' 
    artifacts: 
    expire_in: 1 week 
    paths: 
     - "%RELEASE_FOLDER%AutoBuildWpfTest.exe" 
     - "%RELEASE_FOLDER%NLog.config" 
     - "%RELEASE_FOLDER%NLog.dll" 
     - "%TEST_FOLDER%Tests.dll" 

test_job: 
    stage: test 
    only: 
    - tags 
    script: 

    - '"%NUNIT_RUNNER_PATH%" %TEST_FOLDER%Tests.dll' 
    - mv %RELEASE_FOLDER%AutoBuildWpfTest.exe AutoBuildWpfTest.exe 
    - mv %RELEASE_FOLDER%NLog.config NLog.config 
    - mv %RELEASE_FOLDER%NLog.dll NLog.dll 

    dependencies: 
    - build_job 
    artifacts: 
    expire_in: 1 week 
    paths: 
     - "AutoBuildWpfTest.exe" 
     - "NLog.config" 
     - "NLog.dll" 

次にあなたがtest_jobからアーティファクトをダウンロードできます。このうち、私が見

答えて

1

唯一の方法は、ので、多分あなたの.ymlは次のようになり、テスト段階からアーティファクトを取得することです。私はそれが理想的ではないことを知っていますが、ドキュメンテーションは個々の人工物を扱う高度な方法を示していません。また、ファイルを移動すると、ネストされたフォルダの他の問題が解消されます。私はそれも理想的ではないが、それが私が有効であると分かった唯一の方法だと分かっています

+0

私が間違っている場合は、mvの構文についてよく分かりません。私はWindows上でdev_workを実行してから約1年が経過しています。 –

+0

build_jobが既に完了した後、test_job中にそれらのファイルがまだ存在することが保証されていますか? – Eternal21

+0

はい、build_jobを依存関係としてリストしたので、test_jobはbuild_jobからすべての成果物をダウンロードする必要があります。 Gitlabにはテストジョブでどのような成果物が必要かを知る方法がないので、すべてを渡します。そして、build_jobを最初に実行して、ファイルが常にそこにあるように見えるように見えます。 –

関連する問題