やりたかったこと
- ビルドのパラメータをWorkflow内で参照する
- Buildflow pluginでいう params['VAR1']
結論
yasuhirokiさんの記事 に書かれてるやり方で取れましたパラメータを取るだけですが結構大変です- 【訂正】単にパラメータを参照するだけならば VAR1 だけで取れました
- 受け取ったパラメータを全部取りたいような場合はyasuhirokiさんの記事のようにするとよいようです
- 以下に書くのは全部取り出したい場合、下流ジョブに全パラメータを渡すような場合に使えそうです(がちょっと扱いにくそう)
- 教えていただいたyasuhirokiさんに感謝!
Script (Groovy CPS DSL)
current_env = this.getProperty("env"). getEnvironment()
current_build = Jenkins.instance.getItemByFullName(current_env['JOB_NAME']).getBuildByNumber(current_env['BUILD_NUMBER'].toInteger())
current_params = current_build.getActions(ParametersAction.class). parameters[0]
echo "current_env: ${current_env}"
echo "current_build: ${current_build}"
echo "current_params: ${current_params}"
結果
current_env: [BUILD_DISPLAY_NAME:#5, BUILD_ID:5, BUILD_NUMBER:5, BUILD_TAG:jenkins-TEST-workflo-params-5, BUILD_URL:https://your-domain.com/ci/build/job/TEST-workflo-params/5/, CLASSPATH:, HUDSON_HOME:/var/lib/jenkins, HUDSON_SERVER_COOKIE:37c38c47b14a0acf, HUDSON_URL:https://your-domain.com/ci/build/, JENKINS_HOME:/var/lib/jenkins, JENKINS_SERVER_COOKIE:37c38c47b14a0acf, JENKINS_URL:https://your-domain.com/ci/build/, JOB_NAME:TEST-workflo-params, JOB_URL:https://your-domain.com/ci/build/job/TEST-workflo-params/]
current_build: TEST-workflo-params #5
current_params: [(StringParameterValue) VAR1='hoge', (StringParameterValue) VAR2='fuge']
できなかった
- 当然 params['VAR1'] では取れませんでした(エラー)
groovy.lang.MissingPropertyException: No such property: params for class: WorkflowScript
- env.VAR1 でもしかして、と思ったけど取れませんでした(エラーにはならなかったけどnull)
null