Skip to content
This repository has been archived by the owner on Mar 31, 2024. It is now read-only.

Commit

Permalink
[ci/stats] fix merge base detection (elastic#67030)
Browse files Browse the repository at this point in the history
Co-authored-by: spalger <spalger@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
  • Loading branch information
3 people committed May 27, 2020
1 parent 75fc7bf commit 00d7243
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/dev/ci_setup/checkout_sibling_es.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/dev/ci_setup/extract_bootstrap_cache.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"

###
Expand Down
41 changes: 41 additions & 0 deletions vars/getCheckoutInfo.groovy
Original file line number Diff line number Diff line change
@@ -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
35 changes: 13 additions & 22 deletions vars/workers.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
checkout scm
}

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([
Expand All @@ -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'),
Expand Down

0 comments on commit 00d7243

Please sign in to comment.