mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[ci/stats] fix merge base detection (#67030)
Co-authored-by: spalger <spalger@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
03fd149950
commit
778b01b11a
5 changed files with 58 additions and 27 deletions
|
@ -49,8 +49,7 @@ export function runFailedTestsReporterCli() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const isPr = !!process.env.ghprbPullId;
|
const isPr = !!process.env.ghprbPullId;
|
||||||
const isMasterOrVersion =
|
const isMasterOrVersion = branch === 'master' || branch.match(/^\d+\.(x|\d+)$/);
|
||||||
branch.match(/^(origin\/){0,1}master$/) || branch.match(/^(origin\/){0,1}\d+\.(x|\d+)$/);
|
|
||||||
if (!isMasterOrVersion || isPr) {
|
if (!isMasterOrVersion || isPr) {
|
||||||
log.info('Failure issues only created on master/version branch jobs');
|
log.info('Failure issues only created on master/version branch jobs');
|
||||||
updateGithub = false;
|
updateGithub = false;
|
||||||
|
|
|
@ -43,7 +43,7 @@ function checkout_sibling {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cloneAuthor="elastic"
|
cloneAuthor="elastic"
|
||||||
cloneBranch="${PR_SOURCE_BRANCH:-${GIT_BRANCH#*/}}" # GIT_BRANCH starts with the repo, i.e., origin/master
|
cloneBranch="$GIT_BRANCH"
|
||||||
if clone_target_is_valid ; then
|
if clone_target_is_valid ; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
targetBranch="${PR_TARGET_BRANCH:-${GIT_BRANCH#*/}}"
|
targetBranch="${PR_TARGET_BRANCH:-$GIT_BRANCH}"
|
||||||
bootstrapCache="$HOME/.kibana/bootstrap_cache/$targetBranch.tar"
|
bootstrapCache="$HOME/.kibana/bootstrap_cache/$targetBranch.tar"
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
41
vars/getCheckoutInfo.groovy
Normal file
41
vars/getCheckoutInfo.groovy
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
def call(branchOverride) {
|
||||||
|
def repoInfo = [
|
||||||
|
branch: branchOverride ?: env.ghprbSourceBranch,
|
||||||
|
targetBranch: env.ghprbTargetBranch,
|
||||||
|
]
|
||||||
|
|
||||||
|
if (repoInfo.branch == null) {
|
||||||
|
if (!(params.branch_specifier instanceof String)) {
|
||||||
|
throw new Exception(
|
||||||
|
"Unable to determine branch automatically, either pass a branch name to getCheckoutInfo() or use the branch_specifier param."
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// strip prefix from the branch specifier to make it consistent with ghprbSourceBranch
|
||||||
|
repoInfo.branch = params.branch_specifier.replaceFirst(/^(refs\/heads\/|origin\/)/, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
repoInfo.commit = sh(
|
||||||
|
script: "git rev-parse HEAD",
|
||||||
|
label: "determining checked out sha",
|
||||||
|
returnStdout: true
|
||||||
|
).trim()
|
||||||
|
|
||||||
|
if (repoInfo.targetBranch) {
|
||||||
|
sh(
|
||||||
|
script: "git fetch origin ${repoInfo.targetBranch}",
|
||||||
|
label: "fetch latest from '${repoInfo.targetBranch}' at origin"
|
||||||
|
)
|
||||||
|
repoInfo.mergeBase = sh(
|
||||||
|
script: "git merge-base HEAD FETCH_HEAD",
|
||||||
|
label: "determining merge point with '${repoInfo.targetBranch}' at origin",
|
||||||
|
returnStdout: true
|
||||||
|
).trim()
|
||||||
|
}
|
||||||
|
|
||||||
|
print "repoInfo: ${repoInfo}"
|
||||||
|
|
||||||
|
return repoInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
return this
|
|
@ -51,33 +51,24 @@ def base(Map params, Closure closure) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def scmVars = [:]
|
def checkoutInfo = [:]
|
||||||
|
|
||||||
if (config.scm) {
|
if (config.scm) {
|
||||||
// Try to clone from Github up to 8 times, waiting 15 secs between attempts
|
// Try to clone from Github up to 8 times, waiting 15 secs between attempts
|
||||||
retryWithDelay(8, 15) {
|
retryWithDelay(8, 15) {
|
||||||
scmVars = checkout scm
|
checkout scm
|
||||||
|
|
||||||
def mergeBase
|
|
||||||
if (env.ghprbTargetBranch) {
|
|
||||||
sh(
|
|
||||||
script: "cd kibana && git fetch origin ${env.ghprbTargetBranch}",
|
|
||||||
label: "update reference to target branch 'origin/${env.ghprbTargetBranch}'"
|
|
||||||
)
|
|
||||||
mergeBase = sh(
|
|
||||||
script: "cd kibana && git merge-base HEAD FETCH_HEAD",
|
|
||||||
label: "determining merge point with target branch 'origin/${env.ghprbTargetBranch}'",
|
|
||||||
returnStdout: true
|
|
||||||
).trim()
|
|
||||||
}
|
|
||||||
|
|
||||||
ciStats.reportGitInfo(
|
|
||||||
env.ghprbSourceBranch ?: scmVars.GIT_LOCAL_BRANCH ?: scmVars.GIT_BRANCH,
|
|
||||||
scmVars.GIT_COMMIT,
|
|
||||||
env.ghprbTargetBranch,
|
|
||||||
mergeBase
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dir("kibana") {
|
||||||
|
checkoutInfo = getCheckoutInfo()
|
||||||
|
}
|
||||||
|
|
||||||
|
ciStats.reportGitInfo(
|
||||||
|
checkoutInfo.branch,
|
||||||
|
checkoutInfo.commit,
|
||||||
|
checkoutInfo.targetBranch,
|
||||||
|
checkoutInfo.mergeBase
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
withEnv([
|
withEnv([
|
||||||
|
@ -87,7 +78,7 @@ def base(Map params, Closure closure) {
|
||||||
"PR_TARGET_BRANCH=${env.ghprbTargetBranch ?: ''}",
|
"PR_TARGET_BRANCH=${env.ghprbTargetBranch ?: ''}",
|
||||||
"PR_AUTHOR=${env.ghprbPullAuthorLogin ?: ''}",
|
"PR_AUTHOR=${env.ghprbPullAuthorLogin ?: ''}",
|
||||||
"TEST_BROWSER_HEADLESS=1",
|
"TEST_BROWSER_HEADLESS=1",
|
||||||
"GIT_BRANCH=${scmVars.GIT_BRANCH ?: ''}",
|
"GIT_BRANCH=${checkoutInfo.branch}",
|
||||||
]) {
|
]) {
|
||||||
withCredentials([
|
withCredentials([
|
||||||
string(credentialsId: 'vault-addr', variable: 'VAULT_ADDR'),
|
string(credentialsId: 'vault-addr', variable: 'VAULT_ADDR'),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue