Использование сценария оболочки для циклов в Jenkins Pipeline - PullRequest
0 голосов
/ 18 марта 2020

У меня проблемы со следующей командой оболочки в рамках этапа в моем Jenkinsfile:

stage('Run'){
  container('tool-build'){
    withCredentials([string(credentialsId: 'slack', variable: 'WEBHOOK')]){

              echo "Sending Slack Notification"
              sh """
                 images=\$(docker images | grep "url.for.specific.repo.net" | awk 'NR>1 { print \$1":"\$2 }'')
                 for image in \$images;
                 do
                   label=\$(docker inspect --format='Maintainer:{{.Config.Labels.maintainer}}, From:{{.Config.Labels.from}}, Contains:{{.Config.Labels.contains}}' \$image);
                   PAYLOAD=\$(printf 'payload={"text": "New image available - %s - %s", "channel": "#some-channel", "username": "Some-Jenkins"}' "\$image" "\$label");
                   curl -v -X POST --data-urlencod "\$PAYLOAD" "$WEBHOOK";
                 done
              """

Кажется, что консоль вывода от Jenkins не выполняет команды внутри images=\$, а также игнорирует для л oop. Как получить правильный вывод из команд bash, а также не игнорировать for для l oop?

Вывод Jenkins:

Sending Slack Notification

[Pipeline] sh

+ docker images

+ grep url.for.specific.repo.net

+ awk 'NR>1 { print $1":"$2 }'

+ images=
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...