Избегание двойных кавычек в трубопроводе Дженкинса - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь создать тег в Jenkinsfile.

Я пробовал следующие комбинации:

Попытка один

sh "git tag -a ${params.Version} -m \"${params.Message}\" ${hash} -f"

Результат:

tag tag -a 1.0.1 -m Unquoted commit message 123456 -f

Что, очевидно, не сработает

Попытка два

sh "git tag -a ${params.Version} -m \\"${params.Message}\\" ${hash} -f"

Результат:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 84: unexpected char: '\' @ line 84, column 81.
   rsion} -m \\"${params.Message}\\" ${hash

Попытка три

sh "git tag -a ${params.Version} -m \\\"${params.Message}\\\" ${hash} -f"

Результат:

git tag -a 1.0.1 -m "Full release pipeline" 4618df91ff80e99cdd16f3849da06234e2385066 -f
fatal: too many params

Хорошо выглядит, но, видимо, что-то не так.

Как ты это делаешь?

Редактировать

Это единственное, что я получил, чтобы работать, но это тяжело читать и поддерживать это.

sh 'git tag -af ' + params.Version + ' -m "' + params.Message + '" ' + hash

1 Ответ

0 голосов
/ 20 июня 2019
sh -c "git tag -a ${params.Version} -m \\\\"${params.Message}\\\\" ${hash} -f"

Кажется, работает.

...