Как создать файл из сценария оболочки в Jenkinsfile? - PullRequest
0 голосов
/ 20 февраля 2020

Мне нужно сгенерировать список всех времен модификации файла в репозитории Git и сохранить его в файл, чтобы он был скопирован в результирующий контейнер Docker (эта часть выполняется через мой Dockerfile). Проблема в том, чтобы заставить работать скрипт оболочки. Это терпит неудачу, но я не могу получить разумную ошибку, чтобы помочь отладке. Любая помощь приветствуется. Вот мой Jenkinsfile до сих пор:

podTemplate(label: 'jenkins', 
  ...
  containers: [
  containerTemplate(name: 'docker', image: 'docker', command: 'cat', ttyEnabled: true),
  containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl:v1.14.4', command: 'cat', ttyEnabled: true)
],
volumes: [
  ...
]) {

  node('jenkins') {

    scmInfo = checkout scm
    ...

    stage('generate mtime log') {
        script {
          MTIMES = sh(
            returnStdout: true,
            script: "cd www ; git ls-tree -r --name-only HEAD | while read -r filename; do echo \"\$(git log -1 --format=\"%ad\" --date=format:'%Y%m%d%H%M.%S' -- \"$filename\")\" $filename\" ; done ; cd -"
          )
        }
        dir("assets") {
          writeFile file: 'mtime.log', text: "${MTIMES}"
        }
    }

    stage('create docker images') {
      ...
    }

    stage ('run on kubernetes') {
      ...
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...