feat(podman): add method to generate podman based docker image package
This commit is contained in:
@ -1,25 +1,37 @@
|
||||
// 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", "")
|
||||
/**
|
||||
* Générer des paquets Debian, RPM, Alpine (ipk) via nfpm
|
||||
* Voir See https://nfpm.goreleaser.com/
|
||||
*
|
||||
* Options:
|
||||
* - installDir - Répertoire d'installation du binaire nfpm, par défaut /usr/local/bin
|
||||
* - version - Version de nfpm à installer, par défaut 2.15.1
|
||||
* - forceDownload - Forcer l'installation de nfpm, par défaut false
|
||||
* - config - Fichier de configuration nfpm à utiliser, par défaut nfpm.yaml
|
||||
* - target - Répertoire cible pour nfpm, par défaut ./dist
|
||||
* - packager - Limiter l'exécution de nfpm à un packager spécifique, par défaut "deb" (i.e. pas de limitation)
|
||||
*/
|
||||
void call(Map options = [:]) {
|
||||
String installDir = options.get('installDir', '/usr/local/bin')
|
||||
String version = options.get('version', '2.20.0')
|
||||
Boolean forceDownload = options.get('forceDownload', false)
|
||||
String downloadUrl = options.get('downloadUrl', "https://github.com/goreleaser/nfpm/releases/download/v${version}/nfpm_${version}_Linux_x86_64.tar.gz")
|
||||
String config = options.get('config', 'nfpm.yaml')
|
||||
String target = options.get('target', env.WORKSPACE + '/dist')
|
||||
String packager = options.get('packager', 'deb')
|
||||
|
||||
String nfpmBin = sh(returnStdout: true, script: 'which nfpm').trim("")
|
||||
if (nfpmBin == "" || nfpmForceDownload) {
|
||||
String nfpmBin = sh(returnStdout: true, script: 'which nfpm || exit 0').trim()
|
||||
if (nfpmBin == '' || forceDownload) {
|
||||
sh("""
|
||||
mkdir -p '${installDir}'
|
||||
curl -L '${nfpmDownloadUrl}' > /tmp/nfpm.tar.gz
|
||||
curl -L '${downloadUrl}' > /tmp/nfpm.tar.gz
|
||||
tar -C /usr/local/bin -xzf /tmp/nfpm.tar.gz
|
||||
""")
|
||||
|
||||
nfpmBin = "${installDir}/nfpm"
|
||||
}
|
||||
|
||||
sh("""
|
||||
export PATH='${installDir}:${env.PATH}'
|
||||
nfpm --config '${nfpmConfig}' ${nfpmPackager ? "--packager "+nfpmPackager : ""} --target '${nfpmTarget}'
|
||||
mkdir -p '${target}'
|
||||
${nfpmBin} package --config '${config}' ${packager ? '--packager ' + packager : ''} --target '${target}'
|
||||
""")
|
||||
}
|
||||
|
Reference in New Issue
Block a user