如何保存Jenkins构建运行的命令历史记录?

问题描述 投票:0回答:1

我编写了一个声明性的Jenkins管道,并希望跟踪Jenkins执行的CLI突击队。为此,我添加了一个舞台和其中的步骤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命令,例如hostnamelspwd正常工作。

为什么history出现错误?如何在管道的上下文中存储Jenkins调用的shell命令?

shell jenkins command-line jenkins-pipeline command-line-interface
1个回答
0
投票

您收到的那个特定错误,我认为这仅是因为您正在运行sh的代理没有可用的历史cmd-history: not found

如果您可以存储sh命令...如果只需要sh命令,我认为您需要写入在开始时创建的文件,每次执行sh步骤时就在其中写入文件,或者可以只需使用管道日志文件(输出控制台)。

如果有帮助,您可以找到here有关管道或构建日志位置的线程。

© www.soinside.com 2019 - 2024. All rights reserved.