ビルドのステップとしてArtifact Pluginを使用して、ビルドしているプロジェクトの以前のビルドプロジェクトからlibフォルダにアーティファクト(* .dll)をコピーしています。ただし、これらのファイルは通常、コード・リポジトリーにはすでに存在しますが、コピー・アーティファクトのビルド・ステップで上書きします。これは可能ですか、既存のファイルを最初に削除する別のビルドステップを追加する必要がありますか?Jenkins and Artifact Plugin:対象プロジェクトの既存ファイルを上書きしますか?
答えて
コピーアーティファクトプラグインが自分のSCMチェックアウト領域にファイルをコピーできることを確認できますが、書き込み権限が設定されていないとファイルを処理できないことがわかります。
1. jenkinsジョブコンソールのログを確認します。コピーメッセージが表示されますか? コピーアーティファクトの成功と失敗のメッセージの下の例を参照してください。
2.ビルドの工程順:ビルドステップ「別のプロジェクトからコピーアーティファクト」が SCMの更新と前に、あなたのメインのビルドステップの後に行われていることを確認します。 (明らかに私は知っているが、ただの場合)。
3.コピーした領域のディレクトリリストをビルドステップ(またはスクリプトを追加して追加)を追加して、アクセス許可とファイルの存在をデバッグします()。 'ls -alstr < dir>'
どのようなSCMを使用していますか?どのようにあなたはそれをチェックしていますか? 問題は、チェックアウト後にファイルまたはディレクトリの書き込み権限が原因であると思います。または、おそらくステップオーダーを作成します。
コンソールログに成功のメッセージ:
Copied <num> artifacts from "<jobname>" build number <jobnum>.
コンソールログに失敗したメッセージ(パーミッションが000ファイルをchmodは):
FATAL: Failed to copy /var/lib/jenkins/jobs/jobname/builds/178/archive/file to /var/lib/jenkins/jobs/jobname/workspace/dir/file
hudson.util.IOException2: Failed to copy /var/lib/jenkins/jobs/jobname/builds/178/archive/file to /var/lib/jenkins/jobs/jobname/workspace/dir/file
at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:118)
at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyAll(FingerprintingCopyMethod.java:67)
at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:526)
at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:460)
at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Caused by: java.io.FileNotFoundException: /var/lib/jenkins/jobs/jobname/workspace/dir/file (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at hudson.FilePath.write(FilePath.java:1907)
at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:82)
... 13 more
はこれが可能か、すべきです既存のファイルを最初に削除する別のビルドステップを追加しますか?
明示的に削除してからコピーする必要はありません。設定が正しい場合は、既存のファイルを上書きします。 @ gaoitheの答えは、ビルドメッセージの表示がうまくいくものの、ターゲットファイルが置き換えられない場合、デバッグの方法を詳しく説明しています。サブディレクトリからアーチファクトが発生したときに、を間違って設定した疑いがあります。ここで
は例です:
- 私はサブディレクトリの下に
base-image/redis/ with
のgit shortlogのHEAD`をファイルdocker-entrypoint.sh
の内容を書き換え、それをアーカイブ:
- 間違ったターゲットディレクトリconfig:アーティファクトを別のジョブにコピーしますが、t彼は、ディレクトリ
base-image/redis/
にターゲット:実際にやろうとしたプラグインは、ターゲットディレクトリへのフルパスでターゲット成果物をコピーすることであるため、
がcat base-images/redis/docker-entrypoint.sh
の出力は変わらないと悲惨な現在のあるべきターゲットディレクトリ:base-image/redis/base-image/redis/docker-entrypoint.sh
- 正しいターゲットディレクトリの設定:することになっていますctory
./
:
そして私は私が期待したものを得ることができます。
- 1. jenkins artifactory plugin:対象リポジトリが空です
- 2. 既存のファイルを上書きする
- 3. Artifact Deployer Plugin Alternative
- 4. C#Excel Data既存のファイルを上書きできますか?
- 5. 対象ファイルcで上書きせずにテキストファイルを保存する方法
- 6. Ant NetBeansプロジェクトの対象ファイル
- 7. 既存のオブジェクトグラフを上書きしていますか?
- 8. pg_restoreは既存のテーブルを上書きしますか?
- 9. ジキルが既存のファイルを上書きする
- 10. PySpark MLUtils既存のファイルを上書きするsaveAsLibSVWMFile
- 11. TYPO3 TCA既存のファイルを上書きする
- 12. Gradle Copy Task:既存のファイルを上書きする方法は?
- 13. Excelマクロが既存のファイルを上書きする
- 14. msdeployが既存のファイルを上書きする
- 15. iPhone - 既存のプロジェクトのデプロイメント対象のiOSバージョンを確認する方法
- 16. updateChildrenはAndroid Firebaseの既存のデータを上書きします
- 17. 既存のファイルをファイル名として日付で上書きする
- 18. Djangoは既存のモデルを上書きしています
- 19. .vimrcは既存の設定を上書きします
- 20. 回避上書き既存のCronジョブ
- 21. Gulp sassは既に存在するファイルを上書きできません
- 22. ファイルが既に存在する場合にファイルを上書きする方法
- 23. php artisan make :: authが存在する場合、既存のファイルを上書きしますか?
- 24. 既存のExcelファイルをExcel Interopで保存/上書きする方法 - C#
- 25. SonarQubeの上書きを停止既存のジョブの結果
- 26. Rubyzip libを使用して既存のファイルを上書きする方法
- 27. Fortranで上書きせずに既存のファイルに書き込む
- 28. 既存のタイプ定義ファイルを除外または上書きする
- 29. 既存のファイルを受信ファイルで自動的に上書きする
- 30. スウィフトクッキーセットは既存のクッキーを上書きできません
あなたはそれらを上書きできるようにすることができますが、これを試してみる方が速いでしょう。 –
これはデフォルトの動作ですか、何かを変更する必要がありますか?私たちの場合は、アーティファクトが上書きされないためです。 – user6189