私は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からアーティファクトをダウンロードできます。このうち、私が見
私が間違っている場合は、mvの構文についてよく分かりません。私はWindows上でdev_workを実行してから約1年が経過しています。 –
build_jobが既に完了した後、test_job中にそれらのファイルがまだ存在することが保証されていますか? – Eternal21
はい、build_jobを依存関係としてリストしたので、test_jobはbuild_jobからすべての成果物をダウンロードする必要があります。 Gitlabにはテストジョブでどのような成果物が必要かを知る方法がないので、すべてを渡します。そして、build_jobを最初に実行して、ファイルが常にそこにあるように見えるように見えます。 –