Jenkinsfileを分割したら「java.nio.file.NoSuchFileException」と怒られた

Jenkinsfileで使っている共通ロジックを分割するときに困ったのでメモ。

load でロードできるらしいが

使ってみよう!Jenkins 「Pipeline」を参考にすると load "${pwd()}@script/slack.groovy" とすればいいらしけど、java.nio.file.NoSuchFileException と怒られた。

https://gist.github.com/daipresents/c6ba0749c8c402125c1496de5dc937c5.js?file=ErrorLog

ファイルが見つからないらしい。Jenkinsサーバを見てみても見つからない。

How do you load a groovy file and execute it を見ると、ロードする前にコードをGitHubなりからダウンロードしてくる必要があるみたい。

まずは、以下のように共通ロジック用のファイルを用意する。ここではSlack通知メソッドを作ってみた。最後に return this するのがポイントらしい。

https://gist.github.com/daipresents/c6ba0749c8c402125c1496de5dc937c5.js?file=common.groovy

そして、共通ファイルを以下のように呼び出せば成功。

https://gist.github.com/daipresents/c6ba0749c8c402125c1496de5dc937c5.js?file=Jenkinsfile

広告