Size: a a a

2021 June 23

ДН

Дмитрий Норкин... in jenkins_ru
нет, это решение не дает ничего кроме
hudson.AbortException: script returned exit code 1
источник

HC

Henry Chinaski in jenkins_ru
)
источник

D

Denis 災 nobody in jenkins_ru
понял, но слишком странное. А если "логика" решит об ошибке неверно? Поэтому и выводят только в каком блоке и линк для быстрого открытия.
источник

D

Denis 災 nobody in jenkins_ru
может реальная ошибка в ворнинге на 2 экрана выше, а падение - простой итог, типа инклуд сработал криво или подключил не то
источник

ДН

Дмитрий Норкин... in jenkins_ru
я так же вывожу линк в слак-сообщении для быстрого открытия consoleout:
<${BUILD_URL}consoleFull|Журнал> (<${BUILD_URL}consoleText|Текстовая версия>)
источник

D

Denis 災 nobody in jenkins_ru
в общем, по модулям - если не устраивает вывод, допиливать видимо
источник

ДН

Дмитрий Норкин... in jenkins_ru
я готов с этим мириться, если в целом механизм будет работать правильно. Вся идея выводить текст и место ошибки в слак заключается в повышении комфорта разрабам. Да, можно открыть консоль или тот же блюоушен, но это чуть дольше)
источник

D

Denis 災 nobody in jenkins_ru
выкатка андроид апп через гугл плагин вполне себе ёмко ругалась
источник

E

Eduard in jenkins_ru
что-то мне подсказывает, что все равно придется открыть консоль целиком. а так в принципе можно перехватывать ошибку, и кидать кусок лога.
источник

ДН

Дмитрий Норкин... in jenkins_ru
у нас много методов самописных, которые завернуты в shared lib и вызываются во время Pipeline. Большинство из них используют внутри модуль sh
источник

D

Denis 災 nobody in jenkins_ru
писать error.log и потом grep -i error error.log |head например... если нужно умнее то это уже нейросеть пилить )
источник

ДН

Дмитрий Норкин... in jenkins_ru
была такая идея.
источник

D

Denis 災 nobody in jenkins_ru
и да, внутри script (чтобы sh юзать) вполне работает try. Писать ожидаемую обработку.
источник

ДН

Дмитрий Норкин... in jenkins_ru
как я уже писал ранее, например, если весь stage представляет собой sh (script: "...", returnStatus: true), то можно обыграть получение ошибки через нечто подобное (код отладочный из черновиков):
def SH_ERROR
def output
 SH_ERROR = sh (script:'dockers ps 1>stdout.txt 2>stdout.txt',
 returnStatus: true)
if (SH_ERROR != 0) {
 currentBuild.result = 'FAILED'
 output = readFile('stdout.txt').trim()
 //error 'error text'
}
println  "PRINTOUT\n"+SH_ERROR
println  "PRINTOUT_2\n"+output
sh 'rm stdout.txt'
источник

ДН

Дмитрий Норкин... in jenkins_ru
у модуля sh есть фундаментальная особенность, он умеет возвращать код результата работы, умеет возвращать stdout, НО не умеет возвращать stdErr
источник

ДН

Дмитрий Норкин... in jenkins_ru
эта фундаментальная особенность описана в issue Jenkins с 2017 года, и до сих пор не решена. https://issues.jenkins.io/browse/JENKINS-44930
При том, что люди о ней вспоминают до сегодняшнего дня, судя по коментам
источник

ДН

Дмитрий Норкин... in jenkins_ru
Картинки вставлять не получается, продемонстрировал бы желаемый результат визуально
источник

ДН

Дмитрий Норкин... in jenkins_ru
Залил на хостинг картинок:
https://ibb.co/T8vc8S4
Такого результата удалось добиться при использовании sh и обработке его stderr через перенаправление вывода 2>stdout.txt с последующим считыванием файла и выводом в слак.
источник

V

Vadim in jenkins_ru
А можно как-то в декларативном пайплайне запустить stage в докере на слейв ноде ?

pipeline {
   agent {
       label 'slave1.1'
   }

   stages {

       stage ('run tests') {
           agent {
               docker {
                   image 'gradle:6.9.0-jre8-openj9'
               }
           }

Запускает на мастере
источник

DT

Desk Top in jenkins_ru
Всем привет!
Подскажите плз, а можно ли юзать в мультебренче для всех веток jenkinsfile из мастер ветки?
Напривет:
билдается ветка 25 а jenkinsfile берет из мастера
источник