1. ホーム
  2. グルーヴィー

[解決済み] Jenkinsfile (groovy)から変数に使用して実行されたシェルコマンドの出力を取得するには?

2022-04-18 23:59:09

質問

Jenkinsファイル(Groovy)上にこのようなものがあり、後で情報を使用するために、stdoutと終了コードを変数に記録したいのです。

sh "ls -l"

どうすればいいのでしょうか? Jenkinsfile ?

解決方法は?

パイプラインの最新バージョン sh のステップでは、次のようなことができます。

// Git committer email
GIT_COMMIT_EMAIL = sh (
    script: 'git --no-pager show -s --format=\'%ae\'',
    returnStdout: true
).trim()
echo "Git committer email: ${GIT_COMMIT_EMAIL}"

もう一つの特徴は returnStatus というオプションがあります。

// Test commit message for flags
BUILD_FULL = sh (
    script: "git log -1 --pretty=%B | grep '\\[jenkins-full]'",
    returnStatus: true
) == 0
echo "Build full flag: ${BUILD_FULL}"

これらのオプションは この を発行しました。

公式を見る ドキュメント には sh コマンドを使用します。

宣言型パイプライン(コメント参照)の場合、コードのラップは script のステップになります。

script {
   GIT_COMMIT_EMAIL = sh (
        script: 'git --no-pager show -s --format=\'%ae\'',
        returnStdout: true
    ).trim()
    echo "Git committer email: ${GIT_COMMIT_EMAIL}"
}