Дженкинс конвейер - команда оболочки убила архивирование большого каталога - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть Jenkins Groovy Pipeline, куда я архивирую большой каталог (около 200 МБ). Тем не менее, команда оболочки убивается с ошибками вроде:

./package-code-to-s3.sh: line 18: 20091 Killed 

ИЛИ

line x: 28026 Killed

OR

./package-code-to-s3.sh: line 13:  7162 Killed   

Ниже приведен мой код конвейера для этапа:

stage ("Package") {
      sh """#!/bin/bash
      set -e
      echo "Packging"
      chmod +x package-code-to-s3.sh
      ./package-code-to-s3.sh ${S3_BUCKET}

      aws s3 cp packaged.yaml s3://builds/Templates/${env.JOB_NAME}/${env.BUILD_NUMBER}-packaged.yaml

      """ 
    }

и следующий код для package-code-to-s3.sh :

     #!/bin/bash
      set -e
      S3_BUCKET_NAME=$1
      FILE_NAME_UUID=`python -c 'import uuid; print str(uuid.uuid1())'`
      echo "UUID: $FILE_NAME_UUID"
      ZIP="`pwd`/$FILE_NAME_UUID"
      echo "ZIP FILE : $ZIP"

      cd .aws-sam/build/LambdaHandlers/
      echo "Executing zip  -fz  -q -r $ZIP"
      nohup zip  -fz  -q -r $ZIP . > log.output 2>&1 &
      ls -las
      cd ../../../
      ls -las
      ls -las 
      mv "$FILE_NAME_UUID.zip" $FILE_NAME_UUID
      CODE_URI="s3://$S3_BUCKET_NAME/$FILE_NAME_UUID"
      aws s3 cp $FILE_NAME_UUID $CODE_URI

Если я запускаю те же команды из командной строки, это прекрасно работает.

Мне кажется, это проблема с буфером или кучей памяти ИЛИ проблема с запуском zip в конвейере.

В моем экземпляре Jenkins выполняется только одно задание (это), и на машине Jenkins достаточно памяти, поэтому проблема с ОЗУ не должна быть.

Любая помощь / предложение приветствуется.

EDIT

Устранена проблема

Поскольку в логах не было ничего полезного, это выглядело как проблема с памятью. Я скопировал код package-code-to-s3.sh на стадию пакета Jenkinsfile и перезапустил свой экземпляр Jenkins. Как ни странно, проблема была решена для меня, сделав это.

Спасибо

1 Ответ

0 голосов
/ 09 апреля 2019

Проблема решена

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

  • Я скопировал код package-code-to-s3.sh в мой Jenkinsfile package stage
  • Добавлена ​​очистка рабочего пространства перед проверкой (только для того, чтобычистое рабочее пространство)
  • Перезапустил мой экземпляр Jenkins (компьютер).

Как ни странно, проблема была решена для меня, сделав это.

...