1

SVN の特定のディレクトリに変更があった場合にのみ、ワークフローで特別なことを実行できるようにしたいと考えています。

そのために、現在のビルドの変更ログにアクセスできるようにしたいと考えています。

私はそれらが次の場所に保存されていることを知っています:

changelog<number>.xml

Groovy スクリプトでそれらを読み取るにはどうすればよいですか?

私は使用しています:

Jenkins 1.627, Workflow 1.10, Svn plugin 2.5.2

ありがとうございました

4

2 に答える 2

0

現在、この情報を取得する低レベルの方法がありますが、Groovy サンドボックスを使用していない場合は、どのスクリプトからでも安全に使用できる、サポートされ文書化された機能についてJENKINS-30412を申請しました。

于 2015-09-11T13:46:10.920 に答える
0

わかりました、私はそれを理解しました。ここにあります:

node ('master') {
    dir ("${env.JENKINS_HOME}/jobs/${env.JOB_NAME}/builds/${env.BUILD_NUMBER}") {
        int changelogNumber = 0;
        while(true){
            String changelogFile = "changelog${changelogNumber}.xml";
            if (fileExists(changelogFile)) {
                String changelogFileContents = readFile(changelogFile)
                // check changes in special dir
            } else {
                break;
            }
            changelogNumber++;
        }
    }
}

それでも、変更ログが空になる原因はわかりません。

-rw-r--r--   1 jenkins jenkins     6 Sep  8 16:04 changelog0.xml
-rw-r--r--   1 jenkins jenkins     6 Sep  8 16:04 changelog1.xml
-rw-r--r--   1 jenkins jenkins     6 Sep  8 16:04 changelog2.xml

ログで SCM の変更を確認できますが、次のようになります。

Running: General SCM
Updating svn://<my_repository> at revision '2015-09-08T16:04:40.627 +0200'
U         <path>/<file>.txt
...
于 2015-09-06T08:21:09.510 に答える