feat: add container + nfpm utilities
This commit is contained in:
25
vars/nfpm.groovy
Normal file
25
vars/nfpm.groovy
Normal file
@ -0,0 +1,25 @@
|
||||
// Package project with nfpm
|
||||
// See https://nfpm.goreleaser.com/
|
||||
def package(Map options = [:]) {
|
||||
String installDir = options.get("nfpmInstallDir", "/usr/local/bin")
|
||||
String nfpmVersion = options.get("nfpmVersion", "2.15.1")
|
||||
String nfpmForceDownload = options.get("nfpmForceDownload", false)
|
||||
String nfpmDownloadUrl = options.get("nfpmDownloadUrl", "https://github.com/goreleaser/nfpm/releases/download/${nfpmVersion}/nfpm_${nfpmVersion}_Linux_x86_64.tar.gz")
|
||||
String nfpmConfig = options.get("nfpmConfig", "nfpm.yaml")
|
||||
String nfpmTarget = options.get("nfpmTarget", ".")
|
||||
String nfpmPackager = options.get("nfpmPackager", "")
|
||||
|
||||
String nfpmBin = sh(returnStdout: true, script: 'which nfpm').trim("")
|
||||
if (nfpmBin == "" || nfpmForceDownload) {
|
||||
sh("""
|
||||
mkdir -p '${installDir}'
|
||||
curl -L '${nfpmDownloadUrl}' > /tmp/nfpm.tar.gz
|
||||
tar -C /usr/local/bin -xzf /tmp/nfpm.tar.gz
|
||||
""")
|
||||
}
|
||||
|
||||
sh("""
|
||||
export PATH='${installDir}:${env.PATH}'
|
||||
nfpm --config '${nfpmConfig}' ${nfpmPackager ? "--packager "+nfpmPackager : ""} --target '${nfpmTarget}'
|
||||
""")
|
||||
}
|
Reference in New Issue
Block a user