どんな時の話?
- jenkins pipelineでビルドスクリプトをSCMチェックアウトで取ってくる
- 新たに、ビルド対象のrepositoryを取得
- groovy以外のpy, bat, shファイルなどを動かしたい(こいつは、1番目のビルドスクリプトと同じrepositoryに存在)
という状況があったとします。
これの解決方法
どうするか
答えとしては、明快です。
1番目のビルドスクリプトを配置しているrepository取得時に、pythonなどのファイルをローカルに作成します。
stage ('SCM checkout') {
checkout scm
hogeUtility = load "hogehoge/utils/hogeUtility.groovy"
// hoge.pyをローカルに作成
hogepy = readFile(file:'hogehoge/utils/hoge.py') //✨これ
writeFile(file:'hoge.py', text:hogepy) // ✨これ
}
...
参考:
これをすると、workspaceフォルダのroot直下にhoge.pyが作成されます。
これに合わせてpythonをコマンドで叩けばOKです。
パスをコピー元と一緒にしたい場合は、fileで指定すればよいです。
sh 'python hoge.py'
とかですかね。
まとめ
欠点としては、いちいちファイルを作ることです。
面倒ですね。
groovyの中に直接書いてもいいかもしれません。
本稿の目的は、すでにあるpythonファイルなどをそのまま動かしたい場合です。