From bc215abaf314058c581b73d7ad09de5d764f3745 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:24:54 +0100 Subject: [PATCH 1/9] fixes --- Jenkinsfile | 193 ++++++++++++++++++++++------------------------------ 1 file changed, 83 insertions(+), 110 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b454898d2f..07f8abcb25 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,39 +1,37 @@ pipeline { agent none options { - ansiColor("xterm") - timeout(time: 6, unit: "HOURS") + ansiColor('xterm') + timeout(time: 6, unit: 'HOURS') timestamps() } parameters { - choice(name: "CHANNEL", choices: ["nightly", "dev", "beta", "release", "development"]) - choice(name: "BUILD_TYPE", choices: ["Release", "Debug"]) - choice(name: "BUILD_STATUS", choices: ['', 'SUCCESS', 'FAILURE', 'UNSTABLE', 'ABORTED']) - booleanParam(name: "WIPE_WORKSPACE", defaultValue: false) - booleanParam(name: "SKIP_INIT", defaultValue: false) - booleanParam(name: "DISABLE_SCCACHE", defaultValue: false) - booleanParam(name: "SKIP_SIGNING", defaultValue: true) - booleanParam(name: "DCHECK_ALWAYS_ON", defaultValue: true) - } - environment { - GITHUB_CREDENTIAL_ID = "brave-builds-github-token-for-pr-builder" - SLACK_USERNAME_MAP = credentials("github-to-slack-username-map") + choice(name: 'CHANNEL', choices: ['nightly', 'dev', 'beta', 'release', 'development']) + choice(name: 'BUILD_TYPE', choices: ['Release', 'Debug']) + choice(name: 'BUILD_STATUS', choices: ['', 'SUCCESS', 'FAILURE', 'UNSTABLE', 'ABORTED']) + booleanParam(name: 'WIPE_WORKSPACE', defaultValue: false) + booleanParam(name: 'SKIP_INIT', defaultValue: false) + booleanParam(name: 'DISABLE_SCCACHE', defaultValue: false) + booleanParam(name: 'SKIP_SIGNING', defaultValue: true) + booleanParam(name: 'DCHECK_ALWAYS_ON', defaultValue: true) } stages { - stage("env") { + stage('env') { steps { - withCredentials([usernamePassword(credentialsId: "${GITHUB_CREDENTIAL_ID}", usernameVariable: "PR_BUILDER_USER", passwordVariable: "PR_BUILDER_TOKEN")]) { - setEnv() + withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { + echo BRANCH_NAME + echo GIT_URL + setEnv(repo: 'brave-browser', otherRepo: 'brave-core') } } } - stage("abort") { + stage('abort') { steps { checkAndAbortBuild() } } - stage("build-all") { - agent { label "master" } + stage('build') { + agent { label 'master' } when { beforeAgent true expression { !SKIP } @@ -42,7 +40,7 @@ pipeline { script { if (params.BUILD_STATUS) { if (isStartedManually()) { - echo "Aborting build as it has been started manually with BUILD_STATUS set" + echo 'Aborting build as it has been started manually with BUILD_STATUS set' stopCurrentBuild() } else { @@ -50,7 +48,7 @@ pipeline { } } else { - startBraveBrowserBuild() + startBraveBrowserBuild(otherRepo: 'brave-core') } } } @@ -58,6 +56,32 @@ pipeline { } } +def setEnv(repo, otherRepo) { + GITHUB_API = 'https://api.github.com/repos/brave' + def prDetails = readJSON(text: httpRequest(url: GITHUB_API + '/' + repo + '/pulls?head=brave:' + BRANCH_NAME, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] + OTHER_PR_DETAILS = '' + SKIP = prDetails.draft.equals(true) || prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) + SKIP_ANDROID = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-android') }.equals(1) + SKIP_IOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-ios') }.equals(1) + SKIP_LINUX = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-linux') }.equals(1) + SKIP_MACOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-macos') }.equals(1) + SKIP_WINDOWS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-windows') }.equals(1) + RUN_NETWORK_AUDIT = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/run-network-audit') }.equals(1) + def branchExistsInOtherRepo = httpRequest(url: GITHUB_API + '/' + otherRepo + '/branches/' + BRANCH_NAME, validResponseCodes: '100:499', customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).status.equals(200) + if (branchExistsInOtherRepo) { + OTHER_PR_DETAILS = readJSON(text: httpRequest(url: GITHUB_API + '/' + otherRepo + '/pulls?head=brave:' + BRANCH_NAME, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] + if (OTHER_PR_DETAILS) { + SKIP = SKIP || OTHER_PR_DETAILS.draft.equals(true) || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) + SKIP_ANDROID = SKIP_ANDROID || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-android') }.equals(1) + SKIP_IOS = SKIP_IOS || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-ios') }.equals(1) + SKIP_LINUX = SKIP_LINUX || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-linux') }.equals(1) + SKIP_MACOS = SKIP_MACOS || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-macos') }.equals(1) + SKIP_WINDOWS = SKIP_WINDOWS || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-windows') }.equals(1) + RUN_NETWORK_AUDIT = RUN_NETWORK_AUDIT || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/run-network-audit') }.equals(1) + } + } +} + @NonCPS def stopCurrentBuild() { Jenkins.instance.getItemByFullName(JOB_NAME).getLastBuild().doStop() @@ -73,84 +97,41 @@ def getBuilds() { return Jenkins.instance.getItemByFullName(JOB_NAME).builds } -def setEnv() { - GITHUB_API = "https://api.github.com/repos/brave" - BASE_BRANCH = CHANGE_TARGET - OTHER_REPO_BRANCH = CHANGE_TARGET - REPO_BRANCH = CHANGE_BRANCH - def prDetails = readJSON(text: httpRequest(url: GITHUB_API + "/brave-browser/pulls?head=brave:" + REPO_BRANCH, customHeaders: [[name: "Authorization", value: "token ${PR_BUILDER_TOKEN}"]]).content)[0] - OTHER_PR_DETAILS = '' - SKIP = prDetails.draft.equals(true) || prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/skip") }.equals(1) - SKIP_ANDROID = prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-android") }.equals(1) - SKIP_IOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-ios") }.equals(1) - SKIP_LINUX = prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-linux") }.equals(1) - SKIP_MACOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-macos") }.equals(1) - SKIP_WINDOWS = prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-windows") }.equals(1) - RUN_NETWORK_AUDIT = prDetails.labels.count { label -> label.name.equalsIgnoreCase("CI/run-network-audit") }.equals(1) - SLACK_USERNAME = readJSON(text: SLACK_USERNAME_MAP)[prDetails.user.login] - BRANCH_PRODUCTIVITY_HOMEPAGE = "https://github.com/brave/brave-browser/pull/${prDetails.number}" - BRANCH_PRODUCTIVITY_NAME = "Brave Browser PR #${prDetails.number}" - BRANCH_PRODUCTIVITY_DESCRIPTION = prDetails.title - BRANCH_PRODUCTIVITY_USER = prDetails.user.login - def branchExistsInOtherRepo = httpRequest(url: GITHUB_API + "/brave-core/branches/" + REPO_BRANCH, validResponseCodes: "100:499", customHeaders: [[name: "Authorization", value: "token ${PR_BUILDER_TOKEN}"]]).status.equals(200) - if (branchExistsInOtherRepo) { - OTHER_REPO_BRANCH = REPO_BRANCH - OTHER_PR_DETAILS = readJSON(text: httpRequest(url: GITHUB_API + "/brave-core/pulls?head=brave:" + OTHER_REPO_BRANCH, customHeaders: [[name: "Authorization", value: "token ${PR_BUILDER_TOKEN}"]]).content)[0] - if (OTHER_PR_DETAILS) { - SKIP = SKIP || OTHER_PR_DETAILS.draft.equals(true) || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/skip") }.equals(1) - SKIP_ANDROID = SKIP_ANDROID || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-android") }.equals(1) - SKIP_IOS = SKIP_IOS || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-ios") }.equals(1) - SKIP_LINUX = SKIP_LINUX || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-linux") }.equals(1) - SKIP_MACOS = SKIP_MACOS || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-macos") }.equals(1) - SKIP_WINDOWS = SKIP_WINDOWS || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/skip-windows") }.equals(1) - RUN_NETWORK_AUDIT = RUN_NETWORK_AUDIT || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase("CI/run-network-audit") }.equals(1) - } - } -} - def checkAndAbortBuild() { if (SKIP) { - echo "Aborting build as PR is in draft or has \"CI/skip\" label" + echo 'Aborting build as PR is in draft or has "CI/skip" label' stopCurrentBuild() } else { for (build in getBuilds()) { if (build.isBuilding() && build.getNumber() < BUILD_NUMBER.toInteger()) { - echo "Aborting older running build " + build + echo 'Aborting older running build ' + build build.doStop() } } } } -def startBraveBrowserBuild() { - PIPELINE_NAME = "pr-brave-browser-" + REPO_BRANCH.replace('/', '-') - jobDsl(scriptText: """ - pipelineJob("${PIPELINE_NAME}") { +def startBraveBrowserBuild(otherRepo) { + PIPELINE_NAME = 'pr-brave-browser-' + BRANCH_NAME.replace('/', '-') + jobDsl(scriptText: ''' + pipelineJob('${PIPELINE_NAME}') { // this list has to match the parameters in the Jenkinsfile from devops repo parameters { - choiceParam("CHANNEL", ["nightly", "dev", "beta", "release", "development"]) - choiceParam("BUILD_TYPE", ["Release", "Debug"]) - booleanParam("WIPE_WORKSPACE", false) - booleanParam("SKIP_INIT", false) - booleanParam("DISABLE_SCCACHE", false) - booleanParam("SKIP_SIGNING", true) - booleanParam("DCHECK_ALWAYS_ON", true) - booleanParam("RUN_NETWORK_AUDIT", false) - booleanParam("SKIP_ANDROID", false) - booleanParam("SKIP_IOS", false) - booleanParam("SKIP_LINUX", false) - booleanParam("SKIP_MACOS", false) - booleanParam("SKIP_WINDOWS", false) - stringParam("BRAVE_BROWSER_BRANCH", "master") - stringParam("BRAVE_CORE_BRANCH", "master") - stringParam("BASE_BRANCH", "master") - stringParam("SLACK_USERNAME", "") - stringParam("SLACK_BUILDS_CHANNEL", "") - stringParam("BRANCH_PRODUCTIVITY_HOMEPAGE", "") - stringParam("BRANCH_PRODUCTIVITY_NAME", "") - stringParam("BRANCH_PRODUCTIVITY_DESCRIPTION", "") - stringParam("BRANCH_PRODUCTIVITY_USER", "") + choiceParam('CHANNEL', ['nightly', 'dev', 'beta', 'release', 'development']) + choiceParam('BUILD_TYPE', ['Release', 'Debug']) + booleanParam('WIPE_WORKSPACE', false) + booleanParam('SKIP_INIT', false) + booleanParam('DISABLE_SCCACHE', false) + booleanParam('SKIP_SIGNING', true) + booleanParam('DCHECK_ALWAYS_ON', true) + booleanParam('RUN_NETWORK_AUDIT', false) + booleanParam('SKIP_ANDROID', false) + booleanParam('SKIP_IOS', false) + booleanParam('SKIP_LINUX', false) + booleanParam('SKIP_MACOS', false) + booleanParam('SKIP_WINDOWS', false) + stringParam('BRANCH', 'master') } definition { cpsScm { @@ -160,7 +141,7 @@ def startBraveBrowserBuild() { credentials('brave-builds-github-token-for-pr-builder') github('brave/devops', 'https') } - branch('master') + branch('mplesa-jenkins-ci-pipeline-refactoring') } } scriptPath('jenkins/jobs/browser/Jenkinsfile') @@ -168,33 +149,25 @@ def startBraveBrowserBuild() { } } } - """) + ''') params = [ - string(name: "CHANNEL", value: params.CHANNEL), - string(name: "BUILD_TYPE", value: params.BUILD_TYPE), - booleanParam(name: "WIPE_WORKSPACE", value: params.WIPE_WORKSPACE), - booleanParam(name: "SKIP_INIT", value: params.SKIP_INIT), - booleanParam(name: "DISABLE_SCCACHE", value: params.DISABLE_SCCACHE), - booleanParam(name: "SKIP_SIGNING", value: params.SKIP_SIGNING), - booleanParam(name: "DCHECK_ALWAYS_ON", value: params.DCHECK_ALWAYS_ON), - booleanParam(name: "RUN_NETWORK_AUDIT", value: RUN_NETWORK_AUDIT), - booleanParam(name: "SKIP_ANDROID", value: SKIP_ANDROID), - booleanParam(name: "SKIP_IOS", value: SKIP_IOS), - booleanParam(name: "SKIP_LINUX", value: SKIP_LINUX), - booleanParam(name: "SKIP_MACOS", value: SKIP_MACOS), - booleanParam(name: "SKIP_WINDOWS", value: SKIP_WINDOWS), - string(name: "BRAVE_BROWSER_BRANCH", value: REPO_BRANCH), - string(name: "BRAVE_CORE_BRANCH", value: OTHER_REPO_BRANCH), - string(name: "BASE_BRANCH", value: BASE_BRANCH), - string(name: "SLACK_USERNAME", value: SLACK_USERNAME), - string(name: "SLACK_BUILDS_CHANNEL", value: '#build-downloads-bot'), - string(name: "BRANCH_PRODUCTIVITY_HOMEPAGE", value: BRANCH_PRODUCTIVITY_HOMEPAGE), - string(name: "BRANCH_PRODUCTIVITY_NAME", value: BRANCH_PRODUCTIVITY_NAME), - string(name: "BRANCH_PRODUCTIVITY_DESCRIPTION", value: BRANCH_PRODUCTIVITY_DESCRIPTION), - string(name: "BRANCH_PRODUCTIVITY_USER", value: BRANCH_PRODUCTIVITY_USER) + string(name: 'CHANNEL', value: params.CHANNEL), + string(name: 'BUILD_TYPE', value: params.BUILD_TYPE), + booleanParam(name: 'WIPE_WORKSPACE', value: params.WIPE_WORKSPACE), + booleanParam(name: 'SKIP_INIT', value: params.SKIP_INIT), + booleanParam(name: 'DISABLE_SCCACHE', value: params.DISABLE_SCCACHE), + booleanParam(name: 'SKIP_SIGNING', value: params.SKIP_SIGNING), + booleanParam(name: 'DCHECK_ALWAYS_ON', value: params.DCHECK_ALWAYS_ON), + booleanParam(name: 'RUN_NETWORK_AUDIT', value: RUN_NETWORK_AUDIT), + booleanParam(name: 'SKIP_ANDROID', value: SKIP_ANDROID), + booleanParam(name: 'SKIP_IOS', value: SKIP_IOS), + booleanParam(name: 'SKIP_LINUX', value: SKIP_LINUX), + booleanParam(name: 'SKIP_MACOS', value: SKIP_MACOS), + booleanParam(name: 'SKIP_WINDOWS', value: SKIP_WINDOWS), + string(name: 'BRANCH', value: BRANCH_NAME) ] currentBuild.result = build(job: PIPELINE_NAME, parameters: params, propagate: false).result if (OTHER_PR_DETAILS) { - build(job: "brave-core-build-pr/PR-" + OTHER_PR_DETAILS.number, parameters: [string(name: "BUILD_STATUS", value: currentBuild.result)], propagate: false) + build(job: otherRepo + '-build-pr/PR-' + OTHER_PR_DETAILS.number, parameters: [string(name: 'BUILD_STATUS', value: currentBuild.result)], propagate: false) } } From b2dbed675d28f813fd97887973d38b9f732e42a6 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:30:48 +0100 Subject: [PATCH 2/9] fix --- Jenkinsfile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 07f8abcb25..771b5162fe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,8 +19,8 @@ pipeline { stage('env') { steps { withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { - echo BRANCH_NAME - echo GIT_URL + echo CHANGE_BRANCH + echo JOB_BASE_NAME setEnv(repo: 'brave-browser', otherRepo: 'brave-core') } } @@ -58,7 +58,7 @@ pipeline { def setEnv(repo, otherRepo) { GITHUB_API = 'https://api.github.com/repos/brave' - def prDetails = readJSON(text: httpRequest(url: GITHUB_API + '/' + repo + '/pulls?head=brave:' + BRANCH_NAME, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] + def prDetails = readJSON(text: httpRequest(url: GITHUB_API + '/' + repo + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] OTHER_PR_DETAILS = '' SKIP = prDetails.draft.equals(true) || prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) SKIP_ANDROID = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-android') }.equals(1) @@ -67,9 +67,9 @@ def setEnv(repo, otherRepo) { SKIP_MACOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-macos') }.equals(1) SKIP_WINDOWS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-windows') }.equals(1) RUN_NETWORK_AUDIT = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/run-network-audit') }.equals(1) - def branchExistsInOtherRepo = httpRequest(url: GITHUB_API + '/' + otherRepo + '/branches/' + BRANCH_NAME, validResponseCodes: '100:499', customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).status.equals(200) + def branchExistsInOtherRepo = httpRequest(url: GITHUB_API + '/' + otherRepo + '/branches/' + CHANGE_BRANCH, validResponseCodes: '100:499', customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).status.equals(200) if (branchExistsInOtherRepo) { - OTHER_PR_DETAILS = readJSON(text: httpRequest(url: GITHUB_API + '/' + otherRepo + '/pulls?head=brave:' + BRANCH_NAME, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] + OTHER_PR_DETAILS = readJSON(text: httpRequest(url: GITHUB_API + '/' + otherRepo + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] if (OTHER_PR_DETAILS) { SKIP = SKIP || OTHER_PR_DETAILS.draft.equals(true) || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) SKIP_ANDROID = SKIP_ANDROID || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-android') }.equals(1) @@ -113,7 +113,7 @@ def checkAndAbortBuild() { } def startBraveBrowserBuild(otherRepo) { - PIPELINE_NAME = 'pr-brave-browser-' + BRANCH_NAME.replace('/', '-') + PIPELINE_NAME = 'pr-brave-browser-' + CHANGE_BRANCH.replace('/', '-') jobDsl(scriptText: ''' pipelineJob('${PIPELINE_NAME}') { // this list has to match the parameters in the Jenkinsfile from devops repo @@ -164,7 +164,7 @@ def startBraveBrowserBuild(otherRepo) { booleanParam(name: 'SKIP_LINUX', value: SKIP_LINUX), booleanParam(name: 'SKIP_MACOS', value: SKIP_MACOS), booleanParam(name: 'SKIP_WINDOWS', value: SKIP_WINDOWS), - string(name: 'BRANCH', value: BRANCH_NAME) + string(name: 'BRANCH', value: CHANGE_BRANCH) ] currentBuild.result = build(job: PIPELINE_NAME, parameters: params, propagate: false).result if (OTHER_PR_DETAILS) { From e525c9a54b63458c458bc8aef354fe8b43d9ef33 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:32:26 +0100 Subject: [PATCH 3/9] fix --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 771b5162fe..a52a3854d6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,7 +21,7 @@ pipeline { withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { echo CHANGE_BRANCH echo JOB_BASE_NAME - setEnv(repo: 'brave-browser', otherRepo: 'brave-core') + setEnv('brave-browser', 'brave-core') } } } @@ -48,7 +48,7 @@ pipeline { } } else { - startBraveBrowserBuild(otherRepo: 'brave-core') + startBraveBrowserBuild('brave-core') } } } From bc21dc03342f14d2f1caa0be081073b4df4f6d77 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:40:16 +0100 Subject: [PATCH 4/9] fix --- Jenkinsfile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a52a3854d6..d3bbb5385c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,9 +19,7 @@ pipeline { stage('env') { steps { withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { - echo CHANGE_BRANCH - echo JOB_BASE_NAME - setEnv('brave-browser', 'brave-core') + setEnv() } } } @@ -48,7 +46,7 @@ pipeline { } } else { - startBraveBrowserBuild('brave-core') + startBraveBrowserBuild() } } } @@ -56,10 +54,11 @@ pipeline { } } -def setEnv(repo, otherRepo) { +def setEnv() { GITHUB_API = 'https://api.github.com/repos/brave' - def prDetails = readJSON(text: httpRequest(url: GITHUB_API + '/' + repo + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] - OTHER_PR_DETAILS = '' + REPO = JOB_NAME.replace('-build-pr', '') + OTHER_REPO = REPO.equals('brave-browser') ? 'brave-core' : 'brave-browser' + def prDetails = readJSON(text: httpRequest(url: GITHUB_API + '/' + REPO + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] SKIP = prDetails.draft.equals(true) || prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) SKIP_ANDROID = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-android') }.equals(1) SKIP_IOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-ios') }.equals(1) @@ -67,9 +66,10 @@ def setEnv(repo, otherRepo) { SKIP_MACOS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-macos') }.equals(1) SKIP_WINDOWS = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-windows') }.equals(1) RUN_NETWORK_AUDIT = prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/run-network-audit') }.equals(1) - def branchExistsInOtherRepo = httpRequest(url: GITHUB_API + '/' + otherRepo + '/branches/' + CHANGE_BRANCH, validResponseCodes: '100:499', customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).status.equals(200) + OTHER_PR_DETAILS = '' + def branchExistsInOtherRepo = httpRequest(url: GITHUB_API + '/' + OTHER_REPO + '/branches/' + CHANGE_BRANCH, validResponseCodes: '100:499', customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).status.equals(200) if (branchExistsInOtherRepo) { - OTHER_PR_DETAILS = readJSON(text: httpRequest(url: GITHUB_API + '/' + otherRepo + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] + OTHER_PR_DETAILS = readJSON(text: httpRequest(url: GITHUB_API + '/' + OTHER_REPO + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] if (OTHER_PR_DETAILS) { SKIP = SKIP || OTHER_PR_DETAILS.draft.equals(true) || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) SKIP_ANDROID = SKIP_ANDROID || OTHER_PR_DETAILS.labels.count { label -> label.name.equalsIgnoreCase('CI/skip-android') }.equals(1) @@ -112,7 +112,7 @@ def checkAndAbortBuild() { } } -def startBraveBrowserBuild(otherRepo) { +def startBraveBrowserBuild() { PIPELINE_NAME = 'pr-brave-browser-' + CHANGE_BRANCH.replace('/', '-') jobDsl(scriptText: ''' pipelineJob('${PIPELINE_NAME}') { @@ -168,6 +168,6 @@ def startBraveBrowserBuild(otherRepo) { ] currentBuild.result = build(job: PIPELINE_NAME, parameters: params, propagate: false).result if (OTHER_PR_DETAILS) { - build(job: otherRepo + '-build-pr/PR-' + OTHER_PR_DETAILS.number, parameters: [string(name: 'BUILD_STATUS', value: currentBuild.result)], propagate: false) + build(job: OTHER_REPO + '-build-pr/PR-' + OTHER_PR_DETAILS.number, parameters: [string(name: 'BUILD_STATUS', value: currentBuild.result)], propagate: false) } } From 476c034225c915c80f09b3ae5b030383bb6a6aed Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:42:27 +0100 Subject: [PATCH 5/9] fix --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index d3bbb5385c..ec3961f39e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,6 +19,8 @@ pipeline { stage('env') { steps { withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { + echo JOB_NAME + echo JOB_BASE_NAME setEnv() } } From e3ea05cd29f98a5a12b60cd3ac01c94997895f9d Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:43:09 +0100 Subject: [PATCH 6/9] fix --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index ec3961f39e..e9449290c3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,6 +21,8 @@ pipeline { withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { echo JOB_NAME echo JOB_BASE_NAME + echo GITHUB_URL + echo GIT_URL setEnv() } } From 6dbd31fa5344c6ddf3221e80734df96c80a0a869 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:45:17 +0100 Subject: [PATCH 7/9] fix --- Jenkinsfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e9449290c3..315d4301c1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,10 +19,6 @@ pipeline { stage('env') { steps { withCredentials([usernamePassword(credentialsId: 'brave-builds-github-token-for-pr-builder', usernameVariable: 'PR_BUILDER_USER', passwordVariable: 'PR_BUILDER_TOKEN')]) { - echo JOB_NAME - echo JOB_BASE_NAME - echo GITHUB_URL - echo GIT_URL setEnv() } } @@ -60,7 +56,7 @@ pipeline { def setEnv() { GITHUB_API = 'https://api.github.com/repos/brave' - REPO = JOB_NAME.replace('-build-pr', '') + REPO = JOB_NAME.substring(0, JOB_NAME.indexOf('-build-pr')) OTHER_REPO = REPO.equals('brave-browser') ? 'brave-core' : 'brave-browser' def prDetails = readJSON(text: httpRequest(url: GITHUB_API + '/' + REPO + '/pulls?head=brave:' + CHANGE_BRANCH, customHeaders: [[name: 'Authorization', value: 'token ' + PR_BUILDER_TOKEN]]).content)[0] SKIP = prDetails.draft.equals(true) || prDetails.labels.count { label -> label.name.equalsIgnoreCase('CI/skip') }.equals(1) From 98610011e366e3f9eba51bb779ebe17a68108299 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 11:49:58 +0100 Subject: [PATCH 8/9] fix --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 315d4301c1..b969e294e5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -114,7 +114,7 @@ def checkAndAbortBuild() { def startBraveBrowserBuild() { PIPELINE_NAME = 'pr-brave-browser-' + CHANGE_BRANCH.replace('/', '-') - jobDsl(scriptText: ''' + jobDsl(scriptText: """ pipelineJob('${PIPELINE_NAME}') { // this list has to match the parameters in the Jenkinsfile from devops repo parameters { @@ -149,7 +149,7 @@ def startBraveBrowserBuild() { } } } - ''') + """) params = [ string(name: 'CHANNEL', value: params.CHANNEL), string(name: 'BUILD_TYPE', value: params.BUILD_TYPE), From 064451e9cb81366cd4895e9fffd5c76c5362c957 Mon Sep 17 00:00:00 2001 From: Mihai PLESA Date: Wed, 13 May 2020 18:07:49 +0100 Subject: [PATCH 9/9] fix --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b969e294e5..2d6dc706fe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -131,7 +131,7 @@ def startBraveBrowserBuild() { booleanParam('SKIP_LINUX', false) booleanParam('SKIP_MACOS', false) booleanParam('SKIP_WINDOWS', false) - stringParam('BRANCH', 'master') + stringParam('BRANCH', '${CHANGE_BRANCH}') } definition { cpsScm {