Size: a a a

2020 November 08

DK

Dmitry Kuzmin in jenkins_ru
Jürgen Romins
Все зависит что есть. Способов задеплоить сдишком много
Фе модули - статика на сторадже. Нужен правильный концепт. Сейчас идет отдельный билд для каждого энва. Напрашивается вариант  темплейтов при деплое, но может что-то еще?..
источник

DK

Dmitry Kuzmin in jenkins_ru
Max.d 🤖
Например, создаёшь один Docker-образ, который можно пускать на любое окружение. Отличаться будут только переменные окружения, которые подгружаются извне

Ну, это просто как пример. Всё тоже сильно зависит от компании и проекта
Статика в контейнере, это удобно, но некрасиво
источник

M

Max.d 🤖 in jenkins_ru
Dmitry Kuzmin
Статика в контейнере, это удобно, но некрасиво
Почему некрасиво?
источник

DK

Dmitry Kuzmin in jenkins_ru
Max.d 🤖
Почему некрасиво?
Большая стоимость ресурсов, новые точки отказа, меньше скорость деплоя. Может что-то еще пропустил
источник
2020 November 09

SG

Smirnoff George in jenkins_ru
Гайз, всем доброго времени суток.
Столкнулся с проблемой которая много кто встречал но никто не решил судя по гуглу: Когда запускается новый агент, джоба падает с ошибкой
wrapper script does not seem to be touching the log file in 'TMP_PATH"
(JENKINS-48300: if on an extremely laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400)

Вывод с HEARTBEAT_CHECK_INTERVAL=86400 полная фигня, которая никак не вляет на причино-следственную связь.
Падает только первый билд на новом воркере, топом всё работает как часики. Может кто решал у себя такую проблему, или может есть вариант сделать бутстрап джобу для нового агента, не нахожу ничего похожего пока....
источник

JR

Jürgen Romins in jenkins_ru
Smirnoff George
Гайз, всем доброго времени суток.
Столкнулся с проблемой которая много кто встречал но никто не решил судя по гуглу: Когда запускается новый агент, джоба падает с ошибкой
wrapper script does not seem to be touching the log file in 'TMP_PATH"
(JENKINS-48300: if on an extremely laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400)

Вывод с HEARTBEAT_CHECK_INTERVAL=86400 полная фигня, которая никак не вляет на причино-следственную связь.
Падает только первый билд на новом воркере, топом всё работает как часики. Может кто решал у себя такую проблему, или может есть вариант сделать бутстрап джобу для нового агента, не нахожу ничего похожего пока....
а что на новом воркере с переменными средами?
источник

SG

Smirnoff George in jenkins_ru
Jürgen Romins
а что на новом воркере с переменными средами?
LS_COLORS=
LESSCLOSE=
LANG=
SUDO_GID=100
USERNAME=roo
SUDO_COMMAND=
XDG_SESSION_ID=c
USER=ubunt
PWD=
HOME=
SUDO_USER=ss
SUDO_UID=100
MAIL=
TERM=xter
SHELL=
SHLVL=
LOGNAME=ubunt
XDG_RUNTIME_DIR=
PATH=
LESSOPEN=
_=
источник

JR

Jürgen Romins in jenkins_ru
Smirnoff George
LS_COLORS=
LESSCLOSE=
LANG=
SUDO_GID=100
USERNAME=roo
SUDO_COMMAND=
XDG_SESSION_ID=c
USER=ubunt
PWD=
HOME=
SUDO_USER=ss
SUDO_UID=100
MAIL=
TERM=xter
SHELL=
SHLVL=
LOGNAME=ubunt
XDG_RUNTIME_DIR=
PATH=
LESSOPEN=
_=
где хомка живет дженкинса и как подключаешь слейв
источник

SG

Smirnoff George in jenkins_ru
хомка на мастере, подключаю через SSH c пмощью плагина Amazon EC2 fleet
источник

JR

Jürgen Romins in jenkins_ru
Smirnoff George
хомка на мастере, подключаю через SSH c пмощью плагина Amazon EC2 fleet
нееее я про хомку агента тут мастер не интересен
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
Smirnoff George
Гайз, всем доброго времени суток.
Столкнулся с проблемой которая много кто встречал но никто не решил судя по гуглу: Когда запускается новый агент, джоба падает с ошибкой
wrapper script does not seem to be touching the log file in 'TMP_PATH"
(JENKINS-48300: if on an extremely laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400)

Вывод с HEARTBEAT_CHECK_INTERVAL=86400 полная фигня, которая никак не вляет на причино-следственную связь.
Падает только первый билд на новом воркере, топом всё работает как часики. Может кто решал у себя такую проблему, или может есть вариант сделать бутстрап джобу для нового агента, не нахожу ничего похожего пока....
Это общая ошибка когда слейв отвалился. Причин много может быть.
источник

NS

N S in jenkins_ru
Hi folks how to call jenkinsfile
источник

NS

N S in jenkins_ru
def deploy_artifacts(String check_code) {
   status = job_utils.copy("${RESULT_DIR}/*", "${DEPLOY_BUILDS}")
   if ((status != 0) && (check_code == 'true')) {
       error('deploying artifacts failed')
   }
   status = job_utils.copy("${DOCKER_WORKSPACE}/.repo/manifests/sh/build/ReqM2_traces/*/*/*.html", "${OUT}")
   if ((status != 0) && (check_code == 'true')) {
       error('deploying reqm2 artifacts failed')
   }
   status = job_utils.copy("${RESULT_DIR}/debug/version_info/*.log", "${OUT}")
   if ((status != 0) && (check_code == 'true')) {
       error('deploying versiobn info artifacts failed')
   }
}
источник

NS

N S in jenkins_ru
Into build.groovy
источник

JR

Jürgen Romins in jenkins_ru
N S
Hi folks how to call jenkinsfile
what do you mean?
источник

NS

N S in jenkins_ru
PLOY_BUILDS_DEBUG', value: env.DEPLOY_BUILDS_DEBUG),
           string(name: 'BUILD_DESCRIPTION', value: env.BUILD_TAG)
       ],
       true
   )
   if (status != 'SUCCESS') {
       retval = 1
   }

   // now write the results to publish file
   def rtp_text = '* *INT_TEST_RESULTS:*\n'
   rtp_text = rtp_text + '** BUILD: ' + url + '\n'
   rtp_text = rtp_text + '** STATUS: ' + status + '\n'
   rtp_text = rtp_text + '** RESULT (XML): ' + url + '/artifact/inttest/flash_target/sh/build/int_results/inttest_final_report.xml/*view*/\n'
   rtp_text = rtp_text + '** RESULT (HTML): ' + url + '/artifact/inttest/flash_target/sh/build/int_results/inttest_final_report.html\n'
   job_utils.append_file(env.PUBLISH_PIPELINE_RESULT_FILE, rtp_text)

   return retval
}

def callUnitTest() {
   def status, build_number, url
   def retval = 0
   String jenkins_job = "${PROJECT_NAME}_unit_test"
   String build_name =  "${PROJECT_NAME}_yocto_build_${BUILD_ID}"

   if (env.BUILD_TYPE == 'CI') {
       jenkins_job = jenkins_job + '_ci'
   }

   (status, build_number, url) = buildJob(
       jenkins_job,
       [
           string(name: 'BASELINE', value: env.BASELINE),
           booleanParam(name: 'UNIT_TEST_COVERAGE_REPORT', value: env.UNIT_TEST_COVERAGE_REPORT),
           string(name: 'INPUT_PATH', value: env.DEPLOY_BUILDS),
           string(name: 'JENKINS_BUILD_NAME', value: build_name),
           string(name: 'DEPLOY_BUILDS_DEBUG', value: env.DEPLOY_BUILDS_DEBUG),
           string(name: 'BUILD_DESCRIPTION', value: env.BUILD_TAG)
       ],
       true
   )
   if (status != 'SUCCESS') {
       retval = 1
   }

   // now write the results to publish file
   def rtp_text = '* *UNIT_TEST_RESULTS:*\n'
   rtp_text = rtp_text + '** BUILD: ' + url + '\n'
   rtp_text = rtp_text + '** STATUS: ' + status + '\n'
   rtp_text = rtp_text + '** RESULT (XML): ' + url + '/artifact/docker_ws/Input_path_unit_test/unit_test_result/result_all.xml/*view*/\n'
   rtp_text = rtp_text + '** RESULT (HTML): ' + url + '/artifact/docker_ws/Input_path_unit_test/unit_test_result/result_all.html\n'
   job_utils.append_file(env.PUBLISH_PIPELINE_RESULT_FILE, rtp_text)

   return retval
}

def callSubprojects() {
   def status, build_number, url
   String basename = "${PROJECT_NAME}"
   def retval_list = []
   def retval = 0

   if (env.BUILD_TYPE == 'CI' && env.NIGHTLY == 'true') {
       (status, build_number, url) = buildJob(
           basename + '_create_build_tag',
           [
               string(name: 'BUILD_OUTPUT_PATH', value: env.DEPLOY_BUILDS)
           ],
           true)
       retval_list.add(status)
   }

   (status, build_number, url) = buildJob(
       basename + '_export_job_config',
       [
           string(name: 'EXPORT_JOB_NAME', value: env.JOB_NAME),
           string(name: 'DEPLOY_TO', value: "${env.DEPLOY_BUILDS_DEBUG}/config")
       ],
       true)
   retval_list.add(status)

   retval_list.each { item ->
       if (item != 'SUCCESS') {
           retval = 1
       }
   }

   return retval
}

def srcrevCheck() {
   def status = sh(returnStatus: true , script: '''
       #!/bin/bash
       set +x
       build_path=${LINUX_BUILD_DIR}/.repo/manifests
       error_check=0
       for filename in ${build_path}/build.*/tmp/srcrev.*; do
           echo "RUN: srcrev check for $filename"
           if ! [ ls -l $filename | awk '{print $5}' -eq 0 ]; then
               error_check=1
               echo "ERROR: srcrev configuration has untracked version id's! Please specify in srcrev.conf of your baseline repo" >> "${SRCREV_CHECK_FILE}"
               echo "##########UNTRACKED VERSION IDS IN ${filename}##########" >> "${SRCREV_CHECK_FILE}"
               cat $filename >> "${SRCREV_CHECK_FILE}"
               echo '####################' >> "${SRCREV_CHECK_FILE}"
           fi
       done
       exit $error_check''')

   return status
}

def generateBuildReport(String machine) {
   def status
   job_utils.print_info_text('Generate Build Reports')

   withCredenti
источник

JR

Jürgen Romins in jenkins_ru
Please use gist or pastebin
источник

NS

N S in jenkins_ru
Ok share me link please
источник

JR

Jürgen Romins in jenkins_ru
N S
Ok share me link please
Please dont post code as message. One more time i will mute you. Do you understand?
источник

NS

N S in jenkins_ru
Ok sorrry sir
источник