На Jenkins работает конвейер CD с некоторым кодом расшифровки, который использует base64
и gpg2
.
Я настроил конвейер так, чтобы скрипты получали и расшифровывали правильные пароли из git с помощью команды оболочки Jenkins, например:
def plainText = sh(script: """#!/bin/sh -e
echo "$encrypted" |
base64 -d -w 0 |
gpg2 --batch --decrypt --passphrase $pw """,
returnStdout: true
)
println("$key=$plaintext")
Конвейер работает отлично, и теперь я ищупри написании сценария для наших рабочих станций dev, использующего maven-groovy-plugin
, чтобы сделать то же самое дешифрование локально, чтобы позволить dev запускать серверы на рабочих станциях
Мое второе требование - я могу запустить свой плагин maven groovy на Jenkins для настройки интеграционного тестирования.
Поэтому я ищу решение, которое можно использовать локально и в сборке.сервер.При необходимости я мог бы переключить скрипт в ОС и выполнить что-то вроде этого:
def cmd = [ 'sh', '-c',
"""echo "$encrypted" |
base64 -d -w 0 |
gpg2 --batch --decrypt --passphrase $encryptionKey """]
cmd.execute().with {
def output = new StringWriter()
def error = new StringWriter()
//wait for process ended and catch stderr and stdout.
it.waitForProcessOutput(output, error)
println "error=$error"
println "output=$output"
println "code=${it.exitValue()}"
}
, но я не уверен, как настроить cmd
для выполнения с cygwin
.