Size: a a a

2020 October 21

Y

Yuriy in jenkins_ru
unixshaman
Настало время почитать https://www.jenkins.io/doc/book/pipeline/syntax/. И нет, это не groovy, это специальный DSL, у которого синтаксис как у groovy и используется groovy интерпретатор.
Спасибо - я оказівается полгода назад єто уже чиатл )) тогда я только создавал єтот пайплайн...  но все забіл.. спасибо - буду повторять
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
Maksim
Задача в общем то проста, есть автобилды с бранча, билд сам идет примерно час, загвоздка в том что иногда прилетают туда несколько пушей подряд и стартует сборка билдов из них все что были до последнего не нужны, как это решить по хорошему?
Для мастера киляется новый билд. Для всех остальных все старые
if (env.BRANCH_NAME.startsWith('master')) {
 //kill all job with current name only for PR
 killall_jobs()
}else{
 killthis_job()
}

def killall_jobs() {
 def jobname = env.JOB_NAME
 def buildnum = env.BUILD_NUMBER.toInteger()
 def job = Jenkins.instance.getItemByFullName(jobname)
 for (build in job.builds) {
   if (!build.isBuilding()) { continue; }
   if (buildnum == build.getNumber().toInteger()) { continue; println "equals" }
   echo "Stop build = ${build}"
   try {
     build.doStop()
   } catch (error) {
     echo "Can't stop ${build}"
   }
 }
}

def killthis_job() {
 def jobname = env.JOB_NAME
 def buildnum = env.BUILD_NUMBER.toInteger()
 def job = Jenkins.instance.getItemByFullName(jobname)
 for (build in job.builds) {
   if (!build.isBuilding()) { continue; }
   if (buildnum == build.getNumber().toInteger()) { continue; println "equals" }
   currentBuild.result = 'ABORTED'
   error("Old build ${build} working. Aborting?")
 }
}
источник

PK

Pavel Kamyshev in jenkins_ru
Maksim
Задача в общем то проста, есть автобилды с бранча, билд сам идет примерно час, загвоздка в том что иногда прилетают туда несколько пушей подряд и стартует сборка билдов из них все что были до последнего не нужны, как это решить по хорошему?
def abortPreviousBuilds() {
   Run previousBuild = currentBuild.rawBuild.getPreviousBuildInProgress()

   while (previousBuild != null) {
       if (previousBuild.isInProgress()) {
           def executor = previousBuild.getExecutor()
           if (executor != null) {
               echo ">> Aborting older build #${previousBuild.number}"
               executor.interrupt(Result.ABORTED, new UserInterruption(
                   "Aborted by newer build #${currentBuild.number}"
               ))
           }
       }

       previousBuild = previousBuild.getPreviousBuildInProgress()
   }
}
источник

PK

Pavel Kamyshev in jenkins_ru
так делал
источник

Y

Yuriy in jenkins_ru
Я Тоже с вопросом - это -
декларативный или "скрипед" пайплайн ?
источник

II

Igor Ivanov in jenkins_ru
Yuriy
Я Тоже с вопросом - это -
декларативный или "скрипед" пайплайн ?
вроде как декларативный, ибо начинается с pipeline {
источник

Y

Yuriy in jenkins_ru
тогда в торой вопрос - в єтой конструкции все верно ?
источник

Y

Yuriy in jenkins_ru
if -else обернуты script
источник

u

unixshaman in jenkins_ru
Yuriy
тогда в торой вопрос - в єтой конструкции все верно ?
Похоже на правду
источник

Y

Yuriy in jenkins_ru
тем не менее падает
источник

PK

Pavel Kamyshev in jenkins_ru
Yuriy
тем не менее падает
погугли
источник

Н

Никитяо in jenkins_ru
Yuriy
тем не менее падает
а ошибку прочитать?
источник

PK

Pavel Kamyshev in jenkins_ru
Никитяо
а ошибку прочитать?
новичок в дженкинсе просто
источник

Н

Никитяо in jenkins_ru
не видит переменную appSrvIpAddress
источник

Н

Никитяо in jenkins_ru
она в другой области видимости либо её нет
источник

Y

Yuriy in jenkins_ru
я и погугули и ошибку почитал. и попробовал много чего еще..
источник

Y

Yuriy in jenkins_ru
а как к єтой переменной надо обращаться правидльно.
источник

Y

Yuriy in jenkins_ru
она у мен в параметерс находится
источник

PK

Pavel Kamyshev in jenkins_ru
вот каеф, кидать обрезки скринов и спрашивать что не так
источник

Н

Никитяо in jenkins_ru
Yuriy
она у мен в параметерс находится
регистр совпадает?
источник