簡體   English   中英

Jenkins 管道 - 觸發給定作業的新構建

[英]Jenkins pipeline - Trigger a new build for a given job

我有兩個 Jenkins 管道,分別命名為AB 兩者都使用相同的 docker 容器,名為C1 作業A如下所示:

pipeline {
    agent {
        node {
            label 'c1'
        }
    }
    stages {
        ...
    }
    post {
        always {
            script {
                echo "always"
            }
        }
        success {
            script {
                echo "success"
            }
        }
        failure {
            script {
                echo "failure"
            }
        }
        unstable { 
            script {
                echo "unstable"
            }
        }
    }
}

唯一的區別在於工作B 這在 post 操作中始終調用作業A ,如下所示:

build job: 'A/master', parameters: [ string(name: 'p1', value: params["p1"])  ]

通過啟動作業A發生錯誤,說:

Error when executing success post condition:
hudson.AbortException: No item named A/master found

而且,通過列出父文件夾,很明顯作業A沒有文件夾。

我該如何解決這個問題?

KI

此問題的解決方案是這些作業所在的文件夾名稱。 因此,作業的名稱是test/A/master

從您的評論中,我了解到您正在使用 Gitea 插件從您的 Gitea 實例接收存儲庫。 Gitea 存儲庫是按用戶/組織組織的,就像 Github 一樣。

通過 Jenkins 插件添加 Gitea 項目(用戶/組織)后,其中一項工作的全名將是:

<user_or_orga>/<repository_name>/<branch>

例如,對於存儲庫“stackoverflow”所屬的用戶名“crash”,它將是(對於主分支):

crash/stackoverflow/master

要獲取所有項目的列表,包括所有完整的作業名稱,您可以在腳本控制台中運行它(在 Manage Jenkins 下):

Jenkins.instance.getAllItems(AbstractItem.class).each {      
    println(it.fullName)
};

PS 對於 Bitbucket 插件和其他插件,它是相同的規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM