Вы можете использовать API для Jenkins либо через XML, либо через JSON.
Сначала получите нужный URL:
XML: https://JENKINS-HOST / jenkins / job / ИМЯ РАБОТЫ / job / JOB-ФИЛИАЛ / BUILD-NUMBER / api / xml
JSON: https://JENKINS -HOST /jenkins / job / NOB-NAME / job / JOB-BRANCH / BUILD-NUMBER / api / json
Затем проанализируйте вывод.Я склонен использовать XPATH для xml, а также использовать shell.
def generate_xpath_url (URL, BRANCH) {
branch = params.BRANCH_NAME
jenkins_job_url = params.OTHER_JENKINS_JOB_URL
remote_name = parse_git_remote_name(URL);
url = other_jenkins_job_url + 'lastSuccessfulBuild/api/xml?xpath=//refsremotes' + remote_name + branch + '/marked/SHA1'
return url
}
...
lastBuildCommitUrl = generate_xpath_url(env.GIT_URL, env.GIT_BRANCH)
lastBuildNumberUrl = env.JOB_URL + 'lastSuccessfulBuild/buildNumber'
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'SomeJenkinsNonUser',
usernameVariable: 'JENKINS_API_USER',
passwordVariable: 'JENKINS_API_PSW']])
{
lastBuildCommit = sh " curl -sLu ${JENKINS_API_USER}:${JENKINS_API_PSW} \"${lastBuildCommitUrl}\" | sed -e 's/<[^>]*>//g' """)
lastBuildNumber = sh([script:"curl -sLu ${JENKINS_API_USER}:${JENKINS_API_PSW} \"${lastBuildNumberUrl}\"", returnStdout: true]).trim();
}
Приведенный выше код предполагает, что вы можете получить git url для репозитория, git-ветку нужного вам репозитория, URL-адрес заданиядля "другой работы jenkins", которую вы хотите, а также что у вас есть неиспользуемый идентификатор с маркером API, который вы можете использовать для доступа к API jenkins изнутри jenkins.