Как сохранить историю команд запуска сборки Jenkins? - PullRequest
0 голосов
/ 28 апреля 2020

Я написал декларативный конвейер Jenkins и хотел бы отслеживать коммандос CLI, выполняемые Jenkins. Для этого я добавил стадию и шаг sh 'history -a' в нее:

pipeline {
    options {
        ...
    }
    agent {
        node {
            ...
        }
    }
    stages {
        stage('Build') {
            steps {
                sh 'hostname'
                sh 'pwd'
                ...
            }
        }
        ...
        stage('History') {
            steps {
                sh 'history -a'
            }
        }
    }
    post {
        ...
    }
}

Но это не работает:

Console Output
...
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Tear Down)
[Pipeline] sh
+ history -a
/path/to/project-root@tmp/durable-66ba15cc/script.sh: 1: history: not found
[Pipeline] }
...

Другие Linux команды, такие как hostname , ls или pwd работают нормально.

Почему history сталкивается с ошибкой? Как сохранить команды оболочки, вызываемые Jenkins, в контексте конвейера?

1 Ответ

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

Эта конкретная c ошибка, которую вы получаете, я думаю, это только потому, что агент, на котором вы работаете sh, не имеет доступного cmd истории - history: not found

Если вы можете сохранить sh команды ... Если вам нужны только команды sh, я думаю, вам нужно записать в файл, который вы создаете в начале, куда вы пишете каждый раз, когда у вас есть шаг sh, или вы можете просто используйте файл журнала конвейера (консоль вывода).

Здесь можно найти ветку о местонахождении конвейера или журналов сборки, если это поможет.

...