- job: name: tcwg-backport project-type: freestyle defaults: global properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-build - job-cancel - build-discarder: days-to-keep: 30 num-to-keep: 60 parameters: - string: name: GERRIT_PATCHSET_REVISION default: refs/remotes/origin/linaro/gcc-5-branch description: 'Patched GCC revision' - string: name: GERRIT_BRANCH default: linaro-local/gcc-5-integration-branch description: 'Base GCC branch' - string: name: gcc_orig default: gcc_patch_prev description: 'Original GCC revision' - string: name: log_server default: dev-01.tcwglab:/home/tcwg-buildslave/logs description: 'Log_Server' - string: name: target_list default: 'aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build' description: 'List of targets -- aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf arm-eabi aarch64-none-elf aarch64_be-none-elf tcwg-x86_64-build tcwg-x86_32-build tcwg-tk1_32-build tcwg-apm_64-build tcwg-apm_32-build -- the tcwg-* targets should be a subset of slave axis' - string: name: abe_branch default: tested description: 'ABE revision to use' - string: name: scripts_branch default: tested description: 'jenkins-scripts revision to use' - bool: name: rebuild default: false description: 'Rebuild the toolchain even if results are already on logserver' - bool: name: dryrun default: false description: 'Dry-run, do nothing, just print steps' disabled: false node: tcwg-coordinator concurrent: true display-name: 'TCWG AAA Backport' scm: - git: url: https://git.linaro.org/toolchain/gcc.git refspec: +refs/changes/*:refs/remotes/changes/* basedir: gcc branches: - ${GERRIT_PATCHSET_REVISION} skip-tag: true wipe-workspace: false clean: before: true reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git choosing-strategy: gerrit - git: url: https://git.linaro.org/toolchain/abe.git refspec: +refs/changes/*:refs/remotes/changes/* basedir: abe branches: - $abe_branch skip-tag: true shallow-clone: true wipe-workspace: true - git: url: https://git.linaro.org/toolchain/jenkins-scripts.git refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/* branches: - $scripts_branch basedir: jenkins-scripts skip-tag: true shallow-clone: true wipe-workspace: true triggers: - gerrit: server-name: 'review.linaro.org' override-votes: true gerrit-build-successful-verified-value: 1 gerrit-build-failed-verified-value: -1 gerrit-build-successful-codereview-value: 1 gerrit-build-failed-codereview-value: -1 readable-message: true successful-message: 'Sanity check OK' failure-message: 'Sanity check FAIL' trigger-for-unreviewed-patches: true projects: - project-compare-type: 'PLAIN' project-pattern: 'toolchain/gcc' branches: - branch-compare-type: 'ANT' branch-pattern: '**' wrappers: - timeout: timeout: 3000 - timestamps - ssh-agent-credentials: # tcwg-buildslave user id users: - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' - build-name: name: '#${BUILD_NUMBER}-${ENV,var="GERRIT_PATCHSET_REVISION"}' builders: - shell: | #!/bin/bash set -e set -x # Make sure we start from a clean state rm -f gcc_orig_parameters gcc_patch_prev compare_results_parameters # For git_rev_parse . ./jenkins-scripts/jenkins-helpers.sh # Split in two commands to help debug traces if needed commit_msg=$(git -C gcc log --pretty=%b -n1 $GERRIT_PATCHSET_REVISION) commit_msg=$(echo $commit_msg | grep DO_NOT_RUN_VALIDATION) || true if [ "x$commit_msg" != "x" ]; then exit 0 fi abe_rev=$(git_rev_parse abe $abe_branch) gcc_patch_rev=$(git_rev_parse gcc $GERRIT_PATCHSET_REVISION) if [ x"$gcc_orig" = x"gcc_patch_prev" ]; then gcc_orig="$gcc_patch_rev^" fi gcc_orig_rev=$(git_rev_parse gcc $gcc_orig) case ${GERRIT_BRANCH} in *gcc-4_9*) toolchainconf='--extraconfigdir ../config/gcc4_9' ;; *gcc-5*) toolchainconf='--extraconfigdir ../config/gcc5' ;; *gcc-6*) toolchainconf='--extraconfigdir ../config/gcc6' ;; *gcc-7*) toolchainconf='--extraconfigdir ../config/gcc7' ;; *) toolchainconf='--extraconfigdir ../config/latest-rel' ;; esac cat < gcc_orig_parameters override=$toolchainconf gcc=gcc.git@$gcc_orig_rev log_name=tcwg-backport-$gcc_orig_rev/$abe_rev/@@host@@.\$target rebuild=${rebuild} dont_fail=true log_server=$log_server target_list=$target_list abe_branch=$abe_rev scripts_branch=$scripts_branch displaytag=backport-ref-${GERRIT_CHANGE_NUMBER} dryrun=$dryrun EOF cat < gcc_patch_parameters override=$toolchainconf gcc=gcc.git@$gcc_patch_rev log_name=tcwg-backport-$gcc_patch_rev/$abe_rev/@@host@@.\$target rebuild=${rebuild} dont_fail=true log_server=$log_server target_list=$target_list abe_branch=$abe_rev scripts_branch=$scripts_branch displaytag=backport-patch-${GERRIT_CHANGE_NUMBER} dryrun=$dryrun EOF cat < compare_results_parameters ref_logs=tcwg-backport-$gcc_orig_rev/$abe_rev new_logs=tcwg-backport-$gcc_patch_rev/$abe_rev target_list=$target_list log_server=$log_server dryrun=$dryrun EOF - conditional-step: condition-kind: file-exists condition-filename: gcc_orig_parameters steps: - trigger-builds: - project: tcwg-buildfarm parameter-factories: - factory: filebuild file-pattern: gcc_*_parameters block: true - conditional-step: condition-kind: file-exists condition-filename: gcc_orig_parameters steps: - trigger-builds: - project: tcwg-compare-results property-file: compare_results_parameters block: true