4

プログラムのアーティファクトをアーカイブしたいのですが、ビルドが失敗した場合、アーティファクトを保存しません。どうしてこれなの?

ジョブが失敗したときにのみアーティファクトを読み取りたいからです。

御返答いただき有難うございます!

-

いつも仕事が失敗したとき、私はアーティファクトを手に入れませんでした。私はそれを非常に小さな仕事でテストします:

空のバッチファイル+アーティファクトファイル、結果:ジョブサクセスフル、アーティファクト:サクセスフル

バッチファイル+アーティファクトファイルの1を終了します。結果:ジョブが失敗します。アーティファクト:何もしませんでした。

ジョブのconfig.xmlファイル:

<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.NullSCM"/>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers class="vector"/>
  <concurrentBuild>false</concurrentBuild>
  <customWorkspace>C:\test\</customWorkspace>
  <builders>
    <hudson.tasks.BatchFile>
      <command>exit 1</command>
    </hudson.tasks.BatchFile>
  </builders>
  <publishers>
    <hudson.tasks.ArtifactArchiver>
      <artifacts>tomcat\logs\tomcat.log</artifacts>
      <latestOnly>false</latestOnly>
    </hudson.tasks.ArtifactArchiver>
  </publishers>
  <buildWrappers/>
</project> 
4

2 に答える 2

5

アーティファクトは、ビルドが失敗したかどうかに関係なくアーカイブされます。次のことを確認してください。

  • 「最後に成功したビルド」アーティファクトではなく、実際の最後のビルドアーティファクトを見ています。
  • アーティファクトを生成する(またはアーカイブのためにワークスペースにコピーする)ビルドステップが実際に実行されます。障害後に実行されることになっている場合は、実行されない可能性があります。その場合、特定の状況に応じた回避策が必要です。

この関連する質問も見てください。

于 2012-06-07T09:44:05.063 に答える
2

「アーティファクトのアーカイブ」ステップで、「詳細」ボタンをクリックします。[ビルドが成功した場合にのみアーティファクトをアーカイブする]のチェックを外します。これにより、単体テストが失敗した場合でも、アーティファクトがアーカイブされます。

于 2016-08-10T06:22:27.330 に答える