[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:
Spencer 2020-05-27 11:22:04 -07:00 committed by GitHub
parent 03fd149950
commit 778b01b11a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 58 additions and 27 deletions

View file

@ -49,8 +49,7 @@ export function runFailedTestsReporterCli() {
}
const isPr = !!process.env.ghprbPullId;
const isMasterOrVersion =
branch.match(/^(origin\/){0,1}master$/) || branch.match(/^(origin\/){0,1}\d+\.(x|\d+)$/);
const isMasterOrVersion = branch === 'master' || branch.match(/^\d+\.(x|\d+)$/);
if (!isMasterOrVersion || isPr) {
log.info('Failure issues only created on master/version branch jobs');
updateGithub = false;

View file

@ -43,7 +43,7 @@ function checkout_sibling {
fi
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
return 0
fi

View file

@ -2,7 +2,7 @@
set -e
targetBranch="${PR_TARGET_BRANCH:-${GIT_BRANCH#*/}}"
targetBranch="${PR_TARGET_BRANCH:-$GIT_BRANCH}"
bootstrapCache="$HOME/.kibana/bootstrap_cache/$targetBranch.tar"
###

View 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

View file

@ -51,33 +51,24 @@ def base(Map params, Closure closure) {
}
}
def scmVars = [:]
def checkoutInfo = [:]
if (config.scm) {
// Try to clone from Github up to 8 times, waiting 15 secs between attempts
retryWithDelay(8, 15) {
scmVars = 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
)
checkout scm
}
dir("kibana") {
checkoutInfo = getCheckoutInfo()
}
ciStats.reportGitInfo(
checkoutInfo.branch,
checkoutInfo.commit,
checkoutInfo.targetBranch,
checkoutInfo.mergeBase
)
}
withEnv([
@ -87,7 +78,7 @@ def base(Map params, Closure closure) {
"PR_TARGET_BRANCH=${env.ghprbTargetBranch ?: ''}",
"PR_AUTHOR=${env.ghprbPullAuthorLogin ?: ''}",
"TEST_BROWSER_HEADLESS=1",
"GIT_BRANCH=${scmVars.GIT_BRANCH ?: ''}",
"GIT_BRANCH=${checkoutInfo.branch}",
]) {
withCredentials([
string(credentialsId: 'vault-addr', variable: 'VAULT_ADDR'),