【问题标题】:Fetching github payload in jenkinsfile在 jenkinsfile 中获取 github 有效负载
【发布时间】:2018-08-24 17:48:47
【问题描述】:

在不安装任何插件的情况下将 GitHub 有效负载提取到 Jenkins 文件中需要一些帮助。

如果有人可以提供 Jenkins 文件代码 sn-p 以从 webhook 访问 GitHub 有效负载。这会有很大帮助。

我可以从 GitHub webhook 调用 Jenkins 作业。但还需要有效载荷来进一步处理。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: jenkins github jenkins-pipeline cloudbees


    【解决方案1】:

    请找到以下 groovy 脚本:

                stage('Pull Request Info') {
                agent {
                    docker {
                        image 'maven'
                        args '-v $HOME/.m2:/home/jenkins/.m2 -ti -u 496 -e MAVEN_CONFIG=/home/jenkins/.m2 -e MAVEN_OPTS=-Xmx2048m'
                    }
                }
    
                steps {
                    script {
                        withCredentials([usernameColonPassword(credentialsId: "${env.STASH_CREDENTIAL_ID}",
                                variable: 'USERPASS')]) {
                            def hasChanges = maven.updateDependencies()
                            if (hasChanges != '') {
                                def pr1 = sh(
                                        script: "curl -s -u ${"$USERPASS" } -H 'Content-Type: application/json' https://xx.example/rest/some/endpoint",
                                        returnStdout: true
                                )
                                def pr = readJSON(text: pr1)
                                println pr.fromRef
                            }
                        }
                    }
                }
            }
    

    以上脚本使用curl 获取有关拉取请求的详细信息。我已将凭据存储在 jenkins 中,并为 credentialId 创建了一个环境变量。

    您可以将 url 替换为您的端点。如果您的机器中安装了jq,您也可以修改脚本以使用jq

    在这种情况下,我使用 readJSON 来解析 JSON,它是管道实用程序插件的一部分。我的问题是,为什么不使用插件,因为它提供了所需的功能?

    如果你还是不想用插件,用 groovy 看看json parsing

    【讨论】:

    • 非常感谢您的回复。我正在使用相同的方法。这种方法的问题是,当同时有 2-3 个拉取请求时,只有最新的才会被考虑,而之前的一次将被排除在外。就我而言,只要调用 webhook,jenkinsfile 就必须打印有效负载,而不管任何事件(例如:拉取请求、推送、合并等)。你能帮忙吗?
    • 我建议你使用 Github 组织,它将拉取请求和分支分开。并且将为每个 PR 创建一个单独的作业,您可以在其中打印来自 Github 的每个事件的有效负载
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多