feat(podman): add method to generate podman based docker image package
This commit is contained in:
46
vars/gomplate.groovy
Normal file
46
vars/gomplate.groovy
Normal file
@ -0,0 +1,46 @@
|
||||
void call(String sourceTemplate, String destFile, Map env = [:], Map options = [:]) {
|
||||
String gomplateBin = getOrInstallGomplate(options)
|
||||
|
||||
sh """
|
||||
${exportEnvMap(env)}
|
||||
${gomplateBin} -f '${sourceTemplate}' > '${destFile}'
|
||||
"""
|
||||
}
|
||||
|
||||
String exportEnvMap(Map env) {
|
||||
String exports = ''
|
||||
|
||||
env.each { item ->
|
||||
exports = """
|
||||
${exports}
|
||||
export ${item.key}="${item.value}"
|
||||
"""
|
||||
}
|
||||
|
||||
return exports
|
||||
}
|
||||
|
||||
String getOrInstallGomplate(Map options = [:]) {
|
||||
String installDir = options.get('installDir', '/usr/local/bin')
|
||||
String version = options.get('version', '3.10.0')
|
||||
Boolean forceDownload = options.get('forceDownload', false)
|
||||
String downloadUrl = options.get('downloadUrl', "https://github.com/hairyhenderson/gomplate/releases/download/v${version}/gomplate_linux-amd64")
|
||||
|
||||
String gomplateBin = ''
|
||||
|
||||
lock("${env.NODE_NAME}:gomplate-install") {
|
||||
gomplateBin = sh(returnStdout: true, script: 'which gomplate || exit 0').trim()
|
||||
|
||||
if (gomplateBin == '' || forceDownload) {
|
||||
sh("""
|
||||
mkdir -p '${installDir}'
|
||||
curl -o '${installDir}/gomplate' -sSL '${downloadUrl}'
|
||||
chmod +x '${installDir}/gomplate'
|
||||
""")
|
||||
|
||||
gomplateBin = "${installDir}/gomplate"
|
||||
}
|
||||
}
|
||||
|
||||
return gomplateBin
|
||||
}
|
Reference in New Issue
Block a user