Необходимо получить идентификатор электронной почты пользователя в качестве входных данных и отправлять логи в jenkins - PullRequest
0 голосов
/ 17 мая 2019

У меня есть сценарий оболочки, который будет работать на вводе пользовательских данных и отправлять журналы пользователям при сбое синтаксиса. Я использую:Я бы .В настоящее время я получаю 2 входа, используя параметр выбора.Я хочу, чтобы пользователь дал идентификатор электронной почты и передал его в качестве параметра.

@Library('Shared@release/v1')
import jenkins.BuildSupport

properties([parameters([choice(choices: ['dev''uat', 'prod'], description: 'Select the Environment', name: 'ENVIRONMENT'), choice(choices: ['a1','a2','all'], description: 'Select the Service', name: 'SERVICENAME')])])

node{  
    WORKSPACE = pwd()

    //checkout code from shared library 
    stage ('Code Checkout'){
    codeCheckout
    }   

    //post build work
    stage('Executing Health Check') {
    withEnv(["WORKSPACE=${WORKSPACE}","ENVIRONMENT=${params.ENVIRONMENT}","SERVICENAME=${params.SERVICENAME}",]) {
            sh '''
            set +x  
            ls -l
            ./script.sh ${ENVIRONMENT} ${SERVICENAME} 
            '''
        }  
   }
}

Мне нужно, чтобы script.sh принял третий параметр, который будет идентификатором электронной почты, введенным пользователем

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Так что пара вещей здесь происходит.Сначала вам нужно добавить строковый параметр, чтобы запросить ввод у пользователя, затем вам нужно передать его в сценарий оболочки, а затем вам нужно убедиться, что сценарий оболочки может его использовать.

Я не вижу необходимости в withEnv, вы можете передавать переменные в скрипт без этого.

Просто убедитесь, что ваш сценарий оболочки получает EMAIL_ADDRESS от $ 3

#!groovy

@Library('Shared@release/v1')
import jenkins.BuildSupport

properties([parameters([string(name: 'EMAIL_ADDRESS', description: 'Enter the email address'), choice(choices: ['dev','uat','prod'], description: 'Select the Environment', name: 'ENVIRONMENT'), choice(choices: ['a1','a2','all'], description: 'Select the Service', name: 'SERVICENAME')])])

node{  
    WORKSPACE = pwd()

    //checkout code from shared library 
    stage ('Code Checkout'){
    codeCheckout
    }   

    //post build work
    stage('Executing Health Check') { 
       sh '''
          set +x  
          ls -l
          ./script.sh $ENVIRONMENT $SERVICENAME $EMAIL_ADDRESS
       '''
    }
}
0 голосов
/ 17 мая 2019

Пример отправки электронной почты из скриптового конвейера Jenkins / Groovy

    stage('Email the results') {
        emailext attachLog: true,
            attachmentsPattern: '*',
            to: "${EMAIL_ADDRESS}",
            subject: "${currentBuild.currentResult} - ${ENVIRONMENT} ${SERVICE}",
            body: """
Blah blah blah
"""
    }
...