feat(Jenkinsfile.sco): add new pipeline for client deployment with parameter validation
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
pipeline {
|
||||
agent none
|
||||
parameters {
|
||||
string(
|
||||
name: 'NODO',
|
||||
defaultValue: '',
|
||||
description: 'Nombre exacto del nodo a deployar'
|
||||
)
|
||||
choice(
|
||||
name: 'CLIENTE',
|
||||
choices: [
|
||||
'SELECCIONAR_CLIENTE',
|
||||
'cencosud-jumbo',
|
||||
'censosud-staisabel',
|
||||
'changomas-hiper',
|
||||
'changomas-super',
|
||||
'dibal',
|
||||
'hisense',
|
||||
'lsco',
|
||||
'mbs-econo',
|
||||
'mbs-famcoop',
|
||||
'mbs-ralphs',
|
||||
'mbs-supermax',
|
||||
'modatelas',
|
||||
'walmart-chile-acuenta',
|
||||
'walmart-chile-lider',
|
||||
'wm-mexico-bodega',
|
||||
'wm-mexico-walmart'
|
||||
],
|
||||
description: 'Cliente para el cual se ejecuta el deploy'
|
||||
)
|
||||
}
|
||||
stages {
|
||||
stage('Registro de parámetros') {
|
||||
agent none
|
||||
when { expression { params.CLIENTE == null } }
|
||||
steps {
|
||||
echo 'Primer build: Jenkins está registrando los parámetros de este Jenkinsfile. No se ejecuta ningún deploy. Volvé a correr el job con "Build with Parameters".'
|
||||
script { currentBuild.result = 'NOT_BUILT' }
|
||||
}
|
||||
}
|
||||
stage('Preparar scripts') {
|
||||
agent { label 'built-in' }
|
||||
when { expression { params.CLIENTE != null } }
|
||||
steps {
|
||||
sh 'cp /opt/deploy/install.sh .'
|
||||
stash name: 'scripts', includes: 'install.sh'
|
||||
}
|
||||
}
|
||||
stage('Deploy') {
|
||||
agent { label 'built-in' }
|
||||
when { expression { params.CLIENTE != null } }
|
||||
steps {
|
||||
script {
|
||||
if (!params.NODO?.trim()) {
|
||||
error "El parámetro NODO es obligatorio"
|
||||
}
|
||||
if (params.CLIENTE == 'SELECCIONAR_CLIENTE') {
|
||||
error "El parámetro CLIENTE es obligatorio"
|
||||
}
|
||||
def target = params.NODO.trim()
|
||||
node(target) {
|
||||
unstash 'scripts'
|
||||
sh "bash install.sh '${params.CLIENTE.trim()}'"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user