Записать вывод консоли Jenkins на S3 - PullRequest
0 голосов
/ 21 апреля 2020

Таким образом, я должен записать свои выходные данные консоли заданий Jenkins в S3 Bucket, и это включает в себя множество заданий, которые необходимо настроить таким образом, чтобы выходной журнал консоли задания Jenkins помещался в S3 после сборки.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Один из способов - просто загрузить файл журнала в s3, используя AWS CLI. Вы можете попробовать следующий подход.

echo "hello from job"
echo "job logs to s3"

cat ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/log >> ${BUILD_NUMBER}.log

/usr/bin/aws s3 cp  ${BUILD_NUMBER}.log s3://s3_bucket_name/${BUILD_NUMBER}.log

enter image description here

Или вы можете установить для задания cron значение syn c папка локальных журналов с помощью s3.

Например,

, вы можете установить задание cron, которое будет запускаться каждую минуту, и синхронизировать локальный файл журнала c с s3 или копировать и иметь управление версиями на стороне s3, или другой вариант - запускать скрипт cronjob после завершения каждого задания.

for logs_file in $(ls /var/lib/jenkins/jobs/*/builds/lastSuccessfulBuild/log); 
#now logs_file contain all job logs file path


do  
   echo "copy logs file to s3 $logs_file
   # to identify file unique
   s3_file_name=$(date +'%Y%-m%d%s')
   aws s3 cp  $logs_file s3://s3_bucket_name/"${s3_file_name}".log
done

#Note there are different directories you can copy accordingly
#lastFailedBuild
#lastSuccessfulBuild
# lastUnstableBuild
#lastUnsuccessfulBuild
# and logs by build numbers

0 голосов
/ 21 апреля 2020

См. tee в Служебные шаги :

script {
    tee("$WORKSPACE/my_output.txt") {
       sh "echo Hello"
    }
}

Затем вы можете загрузить результаты в s3:

def path = env.JOB_NAME.replace('%2F','-').replace('/', "-").replace('_', "-").toLowerCase()

withAWS(endpointUrl:"...", credentials:"...") {
  s3Upload bucket: "jenkins",
    path:"${path}/${env.BUILD_NUMBER}/",
    file: "my_output.txt",
    workingDir: "${env.WORKSPACE}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...