0

Jenkinsによって構築されたpomonlyプロジェクトがあります。それが実際に行う唯一のことは、それを私のリポジトリに送信することです。これは他のいくつかのプロジェクトで使用されています。何らかの理由で、Jenkinsはこれらのビルドを保持していません。ワークスペースを削除しているようです。サブバージョンのポーリングログには、「既存のビルドはありません。新しいビルドをスケジュールしています」と表示されます。これにより、新しいビルドがトリガーされ、すべてのダウンストリームプロジェクトの新しいビルドがトリガーされます。これは、ビルド中にファイルが生成されなかったことが原因でしょうか?プロジェクト構成で「古いビルドの削除」がチェックされていません。何か案は?

4

1 に答える 1

1

Jenkins では、Subversion のポーリングはマスター ノードまたはスレーブ ノードから実行できます。デフォルトでは、マスターの負荷を軽減するために (ポーリングは、Subversion サーバーの PostCommit フックからのプッシュ通知よりもリソースを集中的に使用するため、推奨される方法です)、デフォルトはスレーブからのポーリングです。

svn:externalVMスレーブプールを使用するか、スレーブワークスペースを定期的にパージする場合など。その後、スレーブベースのポーリングを完了するためにチェックアウトを実行する必要があります(これは、エントリが固定解除される可能性があるためだと思いますが、よくわかりません)したがって、更新をトリガーします...しかし、それはばかげているように聞こえます)

Jenkins で次のシステム プロパティを設定することにより、デフォルトをマスターに変更できます。

hudson.scm.SubversionSCM.pollFromMaster=true

変更を有効にするには、Jenkins を再起動する必要があります。

Groovy コンソールを使用したい場合は、実行中の Jenkins インスタンスに変更を適用できます...おそらく壊れた構文を修正するための変更により、次のように動作すると思います。

import jenkins.model.*
import hudson.scm.*
Jenkins.instance.items.each { job ->
    if (job.scm instanceof SubversionSCM) { 
        job.scm.setPollFromMaster(true);
    }
}

ただし、Groovy スクリプトは、微調整するフィールドが一時的なものであるため、Jenkins を次に再起動するまでしか変更を加えないことを指摘しておく必要があります。

于 2013-01-28T12:18:29.963 に答える