From 21abbbcd59778f491869a6e48c3ef93b02815133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=BChnel?= Date: Fri, 8 May 2020 13:07:50 +0200 Subject: [PATCH] cleanup of jenkins pipelines --- Jenkins/Phabricator-pipeline/Jenkinsfile | 185 ------------------ .../Jenkinsfile | 8 +- 2 files changed, 7 insertions(+), 186 deletions(-) delete mode 100644 Jenkins/Phabricator-pipeline/Jenkinsfile rename Jenkins/{Phabricator-windows-pipeline => phabricator-windows}/Jenkinsfile (97%) diff --git a/Jenkins/Phabricator-pipeline/Jenkinsfile b/Jenkins/Phabricator-pipeline/Jenkinsfile deleted file mode 100644 index a05d331..0000000 --- a/Jenkins/Phabricator-pipeline/Jenkinsfile +++ /dev/null @@ -1,185 +0,0 @@ -// Copyright 2019 Google LLC -// -// Licensed under the the Apache License v2.0 with LLVM Exceptions (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://llvm.org/LICENSE.txt -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -def success = true -def failure_message = "" - -pipeline { - agent { label 'linux' } - parameters { - string(name: 'DIFF_ID') - string(name: 'PHID') - } - environment { - CONDUIT_TOKEN = credentials('phabricator-conduit-token') - PHABRICATOR_HOST = 'https://reviews.llvm.org' - PHAB_LOG = "${WORKSPACE}/build/.phabricator-comment" - SCRIPT_DIR = "${WORKSPACE}/llvm-premerge-checks/scripts" - BUILD_ID = "${JOB_BASE_NAME}-${BUILD_NUMBER}" - TARGET_DIR = "/mnt/nfs/results/${BUILD_ID}" - RESULT_URL = "http://results.llvm-merge-guard.org/${BUILD_ID}" - DIFF_JSON = "${WORKSPACE}/build/diff.json" - } - options { - timeout(time:2, unit:'HOURS') - } - stages { - stage("build info"){ - steps { - echo "Building diff ${DIFF_ID} with PHID ${PHID}" - script { - def revision_phid = sh(script: - 'echo \'{"constraints":{"ids":[' + DIFF_ID + ']}}\' | '+ - 'arc call-conduit --conduit-uri=$PHABRICATOR_HOST --conduit-token $CONDUIT_TOKEN differential.diff.search | ' + - 'jq -r ".response.data[0].fields.revisionPHID"', returnStdout: true).trim() - def drev_id = sh(script: - 'echo \'{"constraints":{"phids":["' + revision_phid + '"]}}\' | ' + - 'arc call-conduit --conduit-uri=$PHABRICATOR_HOST --conduit-token $CONDUIT_TOKEN differential.revision.search | ' + - 'jq -r ".response.data[0].id"', returnStdout: true).trim() - currentBuild.displayName += " D${drev_id}" - currentBuild.description = "D${drev_id}" - } - // Report versions of the installed packages. - sh ''' - echo Versions of various tools: - clang --version - clang-tidy --version - ld.lld --version - dpkg -l - ''' - - } - } - stage("git checkout"){ - steps { - git url: 'https://github.com/llvm/llvm-project.git' - sh 'git reset --hard origin/master' // To remove any local commits to master. - sh 'git clean -fdx' - sh 'git show -s' - sh 'mkdir -p llvm-premerge-checks' - dir("llvm-premerge-checks") - { - git url: 'https://github.com/google/llvm-premerge-checks.git' - } - } - } - stage('arc patch'){ - steps { - script { - success = false - failure_message = "Failed to apply patch" - } - sh "${SCRIPT_DIR}/phabtalk/apply_patch2.py ${DIFF_ID} --token ${CONDUIT_TOKEN} --url ${PHABRICATOR_HOST} --comment-file ${PHAB_LOG}" - script { - success = true - failure_message = "" - } - } - } - stage('CMake') { - steps { - script { - success = false - failure_message = "Failed to run cmake" - } - sh 'rm -rf build || true' - sh 'mkdir -p build' - sh 'mkdir -p "${TARGET_DIR}"' - sh "${SCRIPT_DIR}/run_cmake.sh" - script { - success = true - failure_message = "" - } - } - } - stage('ninja all') { - steps { - script { - try { - sh(script: "${SCRIPT_DIR}/run_ninja.sh all") - } catch (e) { - success = false; - failure_message = "'ninja all' failed" // append as build might already be broken - echo e.toString() - } - } - } - } - stage('ninja check-all') { - steps { - script { - try { - sh(script: "${SCRIPT_DIR}/run_ninja.sh check-all") - } catch (e) { - success = false; - failure_message += "\n'ninja check-all' failed" // append as build might already be broken - echo e.toString() - } - } - } - } - stage('linters') { - steps { - script { - try { - sh(script: "${SCRIPT_DIR}/lint.sh HEAD ${TARGET_DIR}") - } catch (e) { - success = false; - failure_message += "\nFailed to run linters" // append as build might already be broken - echo e.toString() - } - } - } - } - } - post { - always { - script { - if (success) { - currentBuild.result = "SUCCESS" - } else { - currentBuild.result = "FAILURE" - } - } - echo "Console log is available at ${RESULT_URL}" - dir("${TARGET_DIR}") { - // copy console log to result folder - sh "wget -qO console-log.txt http://jenkins-ui.jenkins.svc.cluster.local:8080/job/${JOB_BASE_NAME}/${BUILD_NUMBER}/consoleText" - // keep a copy of the answer from Phabricator for debugging - // TODO: move all file copy operations here - sh """ - set -eu - if [ -f "${DIFF_JSON}" ]; then - cp ${DIFF_JSON} . - fi - """ - } - /// send results to Phabricator - sh """${SCRIPT_DIR}/phabtalk/phabtalk.py "${PHID}" "${DIFF_ID}" \ - --workspace "${WORKSPACE}" \ - --conduit-token "${CONDUIT_TOKEN}" \ - --test-result-file "test-results.xml" \ - --host "${PHABRICATOR_HOST}/api/" \ - --buildresult ${currentBuild.result} \ - --clang-format-patch "clang-format.patch" \ - --clang-tidy-result "clang-tidy.txt" \ - --clang-tidy-ignore "${SCRIPT_DIR}/clang-tidy-comments.ignore" \ - --results-dir "${TARGET_DIR}" \ - --results-url "${RESULT_URL}" \ - --failures "${failure_message}" \ - --name "linux" - """ - } - } -} diff --git a/Jenkins/Phabricator-windows-pipeline/Jenkinsfile b/Jenkins/phabricator-windows/Jenkinsfile similarity index 97% rename from Jenkins/Phabricator-windows-pipeline/Jenkinsfile rename to Jenkins/phabricator-windows/Jenkinsfile index 64fa3ba..217ac68 100644 --- a/Jenkins/Phabricator-windows-pipeline/Jenkinsfile +++ b/Jenkins/phabricator-windows/Jenkinsfile @@ -15,7 +15,13 @@ def success = true pipeline { - agent { label 'windows' } + agent { + node { + label 'windows' + // use custom workspace folder to shorten paths + customWorkspace "C:\\ws\\prod" + } + } parameters { string(name: 'DIFF_ID') string(name: 'PHID')