aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2020-06-03 13:06:05 +0000
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2020-06-03 13:14:19 +0000
commit3a295b11fe2d65422b729e421c5ea90c985f7f94 (patch)
tree29f6c5f556313a619353d6cd3704bfe3cc94f738
parent4f7024730ca70041631971941876a7d21bbbf5a8 (diff)
tcwg_gnu: Split into tcwg_binutils and tcwg_gcc
... while keeping tcwg_gnu.yaml.in as base template Change-Id: I03d45d05cfdc0377e527f33e6790c82d41ec14c1
-rw-r--r--tcwg/round-robin.yaml.inc8
-rw-r--r--tcwg_binutils.yaml457
-rw-r--r--tcwg_gcc.yaml481
-rw-r--r--tcwg_gnu.yaml487
-rw-r--r--tcwg_gnu.yaml.in118
-rw-r--r--tcwg_gnu/tcwg_binutils.def3
-rw-r--r--tcwg_gnu/tcwg_gcc.def3
-rw-r--r--tcwg_gnu/tcwg_gnu.def3
8 files changed, 1045 insertions, 515 deletions
diff --git a/tcwg/round-robin.yaml.inc b/tcwg/round-robin.yaml.inc
index fcde5730ad..f48f1a9412 100644
--- a/tcwg/round-robin.yaml.inc
+++ b/tcwg/round-robin.yaml.inc
@@ -240,7 +240,7 @@
mkdir -p artifacts/jenkins
dryruncmd=""
-#if RR_tcwg_gnu
+#if RR_tcwg_gcc
# Don't run these known-bad configurations.
case {target}-{type_of_test} in
aarch64-bootstrap_profiled|\
@@ -287,7 +287,7 @@
--distro $distro \
#if RR_tcwg_bmk
--ssh_info true \
-#elif RR_tcwg_gnu
+#elif RR_tcwg_binutils || RR_tcwg_gcc
--arch {docker_arch} \
--node $NODE_NAME \
#endif
@@ -404,7 +404,7 @@
# artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
#if RR_tcwg_bmk
echo "christophe.lyon@linaro.org" > artifacts/jenkins/mail-recipients.txt
-#elif RR_tcwg_gnu
+#elif RR_tcwg_binutils || RR_tcwg_gcc
echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
#elif RR_tcwg_kernel
echo "maxim.kuvyrkov@linaro.org" > artifacts/jenkins/mail-recipients.txt
@@ -415,7 +415,7 @@
--distro $distro \
#if RR_tcwg_bmk
--ssh_info true \
-#elif RR_tcwg_gnu
+#elif RR_tcwg_binutils || RR_tcwg_gcc
--arch {docker_arch} \
--node $NODE_NAME \
#endif
diff --git a/tcwg_binutils.yaml b/tcwg_binutils.yaml
new file mode 100644
index 0000000000..1163f8ca79
--- /dev/null
+++ b/tcwg_binutils.yaml
@@ -0,0 +1,457 @@
+# Auto generated from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_binutils.def. Do not edit.
+- project:
+ name: tcwg_binutils
+ toolchain_name: gnu
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ toolchain_ver:
+ - master:
+ binutils_branch: master
+ - release:
+ binutils_branch: binutils-2_33-branch
+ target:
+ - aarch64:
+ node: tcwg-armv8_64
+ docker_arch: arm64
+ - arm:
+ node: tcwg-armv8_32
+ docker_arch: armhf
+ type_of_test:
+ - check_binutils
+ jobs:
+ - 'tcwg_binutils-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - 'tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+
+- view:
+ name: tcwg_binutils
+ view-type: list
+ regex: 'tcwg_binutils-.*'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+#END: tcwg/default.yaml.inc
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: ci_project
+ default: '{ci_project}'
+ description: "CI project ID; used as namespace for git branches"
+ - string:
+ name: ci_config
+ default: '{ci_config}'
+ description: "CI configuration ID"
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script"
+ - string:
+ name: mail_recipients
+ default: default
+ description: "Comma-separated list of email recipients; use 'default' unless testing"
+ - string:
+ name: distro
+ default: bionic
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - 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
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_url'
+ default: '{url}'
+ description: "{component} git URL"
+ - string:
+ name: '{component}_branch'
+ default: '{branch}'
+ description: "{component} branch or sha1 to build, or 'baseline'"
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ url: '{binutils_url}'
+ branch: '{default_branch}'
+ - choice:
+ name: update_baseline
+ choices:
+ - update
+ - reset
+ - init
+ - push
+ description: "What to do with baseline in this build"
+ - default-parameters:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - 'refs/heads/{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/'{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: binutils
+ url: '{binutils_url}'
+ branch: '{binutils_branch}'
+ reference: binutils-gdb.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+
+- builder:
+ name: trigger-followup-builds
+ builders:
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build-{ci_project_config}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect-{ci_project_config}'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ dryruncmd=""
+
+ build_name="#$BUILD_NUMBER"
+ branch_opt=""
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in {components}; do
+ eval "u=\$$$${{c}}_url"
+ eval "b=\$$$${{c}}_branch"
+ if [ x"$b" = x"default" ]; then
+ eval "b=\$GIT_COMMIT_$i"
+ fi
+ i=$(($i+1))
+ if [ x"$b" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ fi
+ done
+
+ $dryruncmd \
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/{build_script} \
+ %% artifacts/jenkins/manifest.sh \
+ --BUILD_URL "$BUILD_URL" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $branch_opt \
+ ==rr[mode] "jenkins-full" \
+ ==rr[update_baseline] "$update_baseline" \
+ $extra_build_params &
+ res=0 && wait $! || res=$?
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 100
+ fi
+
+ if [ $res != 0 ]; then
+ touch artifacts/failures
+ fi
+
+ if [ -e artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ x"$update_baseline" != x"update" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+ unstable-return: 100
+ - conditional-step:
+ # Only run if above succeeded
+ # Meaning we did not skip a bad config
+ # (a failed build is indicated by artifacts/failures)
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ ci_project_config: '{ci_project_config}'
+ - shell: |
+ #!/bin/bash
+ if [ -f artifacts/failures ]; then
+ exit 1
+ fi
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_url
+ default: ""
+ description: "Bad git URL"
+ - string:
+ name: bad_branch
+ default: ""
+ description: "Bad branch or sha1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_PASSWORD
+ variable: TCWG_JIRA_PASSWORD
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+ # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
+ echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %% artifacts/manifests/bisect.sh \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_url "$bad_url" \
+ --bad_branch "$bad_branch" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ -- \
+ --scripts_branch "$scripts_branch" \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $extra_build_params
+
+ if [ x"$mail_recipients" != x"default" ]; then
+ echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ ci_project_config: '{ci_project_config}'
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - build-publishers
+ - email-ext:
+ recipients: ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_binutils-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - "tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
+ queue-scanning: 'ALL'
+ parameters:
+ - build-parameters:
+ ci_project: 'tcwg_gnu'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ binutils_url: '{binutils_url}'
+ default_branch: 'default'
+ disabled: false
+ node: '{node} && tcwg-build'
+ concurrent: false
+ display-name: 'TCWG Build tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ triggers:
+ - pollscm:
+ cron: 'H H H/2 * *'
+ wrappers:
+ - build-wrappers:
+ timeout: 1000
+ builders:
+ - run-build:
+ build_script: 'tcwg_gnu-build.sh'
+ components: 'binutils'
+ rr_project: 'tcwg_binutils'
+ ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ docker_arch: '{docker_arch}'
+ target: '{target}'
+ type_of_test: '{type_of_test}'
+ publishers:
+ - build-publishers
+ - email-ext:
+ recipients: 'tcwg-gcc@linaro.org'
+ aborted: true
+ failure: false
+ success: false
+
+- job-template:
+ name: tcwg_binutils-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - "tcwg_binutils-bisect-.*"
+ queue-scanning: 'BUILDABLE'
+ parameters:
+ - bisect-parameters:
+ ci_project: 'tcwg_gnu'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ disabled: false
+ node: '{node} && tcwg-bisect'
+ concurrent: false
+ display-name: 'TCWG Bisect tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ build_script: 'tcwg_gnu-build.sh'
+ rr_project: 'tcwg_binutils'
+ ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: abf5e6d56192b1b076e45a48bf858254
diff --git a/tcwg_gcc.yaml b/tcwg_gcc.yaml
new file mode 100644
index 0000000000..4c2fd69285
--- /dev/null
+++ b/tcwg_gcc.yaml
@@ -0,0 +1,481 @@
+# Auto generated from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gcc.def. Do not edit.
+- project:
+ name: tcwg_gcc
+ toolchain_name: gnu
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ toolchain_ver:
+ - master:
+ gcc_branch: master
+ - release:
+ gcc_branch: releases/gcc-9
+ target:
+ - aarch64:
+ node: tcwg-armv8_64
+ docker_arch: arm64
+ - arm:
+ node: tcwg-armv8_32
+ docker_arch: armhf
+ type_of_test:
+ - bootstrap_O1
+ - bootstrap_O3
+ - bootstrap_debug
+ - bootstrap_profiled
+ - bootstrap_profiled_lto
+ - bootstrap_profiled_lto_lean
+ - bootstrap_ubsan
+ - check_bootstrap
+ - check_bootstrap_lto
+ jobs:
+ - 'tcwg_gcc-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - 'tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+
+- view:
+ name: tcwg_gcc
+ view-type: list
+ regex: 'tcwg_gcc-.*'
+
+#BEGIN: tcwg/round-robin.yaml.inc
+# -*- mode: Yaml -*-
+
+#BEGIN: tcwg/default.yaml.inc
+# -*- mode: Yaml -*-
+
+- property:
+ name: default-properties
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ - build-discarder:
+ days-to-keep: 30
+ num-to-keep: 30
+#END: tcwg/default.yaml.inc
+
+- parameter:
+ name: default-parameters
+ parameters:
+ - string:
+ name: ci_project
+ default: '{ci_project}'
+ description: "CI project ID; used as namespace for git branches"
+ - string:
+ name: ci_config
+ default: '{ci_config}'
+ description: "CI configuration ID"
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script"
+ - string:
+ name: mail_recipients
+ default: default
+ description: "Comma-separated list of email recipients; use 'default' unless testing"
+ - string:
+ name: distro
+ default: bionic
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+
+- scm:
+ name: jenkins-scripts
+ scm:
+ - 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
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_url'
+ default: '{url}'
+ description: "{component} git URL"
+ - string:
+ name: '{component}_branch'
+ default: '{branch}'
+ description: "{component} branch or sha1 to build, or 'baseline'"
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - component-parameters:
+ component: gcc
+ url: '{gcc_url}'
+ branch: '{default_branch}'
+ - choice:
+ name: update_baseline
+ choices:
+ - update
+ - reset
+ - init
+ - push
+ description: "What to do with baseline in this build"
+ - default-parameters:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - 'refs/heads/{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/'{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: gcc
+ url: '{gcc_url}'
+ branch: '{gcc_branch}'
+ reference: gcc.git
+
+- wrapper:
+ name: build-wrappers
+ wrappers:
+ - timeout:
+ timeout: '{timeout}'
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ users:
+ - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+
+- builder:
+ name: trigger-followup-builds
+ builders:
+ - build-name-setter:
+ name: 'artifacts/jenkins/build-name'
+ file: true
+ - shell: |
+ #!/bin/bash
+ set -ex
+ for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
+ if [ -f $i ]; then
+ echo "ci_project=$ci_project" >> $i
+ echo "ci_config=$ci_config" >> $i
+ echo "mail_recipients=$mail_recipients" >> $i
+ echo "distro=$distro" >> $i
+ echo "scripts_branch=$scripts_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build-{ci_project_config}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect-{ci_project_config}'
+ property-file: artifacts/trigger-bisect
+
+- builder:
+ name: run-build
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+
+ dryruncmd=""
+ # Don't run these known-bad configurations.
+ case {target}-{type_of_test} in
+ aarch64-bootstrap_profiled|\
+ aarch64-bootstrap_profiled_lto|\
+ aarch64-bootstrap_profiled_lto_lean|\
+ aarch64-check_bootstrap_lto|\
+ arm-bootstrap_profiled|\
+ arm-bootstrap_profiled_lto*|\
+ arm-check_bootstrap_lto)
+ echo "Known bad configuration, not running."
+ echo "Would have run:"
+ # So we know it wasn't an infrastructure failure
+ touch artifacts/failures
+ dryruncmd="echo"
+ ;;
+ esac
+
+ build_name="#$BUILD_NUMBER"
+ branch_opt=""
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in {components}; do
+ eval "u=\$$$${{c}}_url"
+ eval "b=\$$$${{c}}_branch"
+ if [ x"$b" = x"default" ]; then
+ eval "b=\$GIT_COMMIT_$i"
+ fi
+ i=$(($i+1))
+ if [ x"$b" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
+ fi
+ done
+
+ $dryruncmd \
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/{build_script} \
+ %% artifacts/jenkins/manifest.sh \
+ --BUILD_URL "$BUILD_URL" \
+ --scripts_branch "$scripts_branch" \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $branch_opt \
+ ==rr[mode] "jenkins-full" \
+ ==rr[update_baseline] "$update_baseline" \
+ $extra_build_params &
+ res=0 && wait $! || res=$?
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 100
+ fi
+
+ if [ $res != 0 ]; then
+ touch artifacts/failures
+ fi
+
+ if [ -e artifacts/results ]; then
+ build_name="$build_name-R$(tail -n1 artifacts/results)"
+ fi
+ if [ x"$update_baseline" != x"update" ]; then
+ build_name="$build_name-$update_baseline"
+ fi
+ if [ -f artifacts/trigger-bisect ]; then
+ build_name="$build_name-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+ unstable-return: 100
+ - conditional-step:
+ # Only run if above succeeded
+ # Meaning we did not skip a bad config
+ # (a failed build is indicated by artifacts/failures)
+ condition-kind: current-status
+ steps:
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ ci_project_config: '{ci_project_config}'
+ - shell: |
+ #!/bin/bash
+ if [ -f artifacts/failures ]; then
+ exit 1
+ fi
+
+- publisher:
+ name: build-publishers
+ publishers:
+ - archive:
+ artifacts: 'artifacts/**'
+ latest-only: false
+
+- parameter:
+ name: bisect-parameters
+ parameters:
+ - string:
+ name: current_project
+ default: ""
+ description: "Project to bisect"
+ - string:
+ name: bad_url
+ default: ""
+ description: "Bad git URL"
+ - string:
+ name: bad_branch
+ default: ""
+ description: "Bad branch or sha1"
+ - file:
+ name: jenkins-scripts/replay_log
+ description: "Replay part of bisect using provided bisect log"
+ - default-parameters:
+ ci_project: '{ci_project}'
+ ci_config: '{ci_config}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_PASSWORD
+ variable: TCWG_JIRA_PASSWORD
+
+- builder:
+ name: run-bisect
+ builders:
+ - shell:
+ command: |
+ #!/bin/bash
+ set -ex
+ # Delete artifacts now to avoid re-using stale artifacts if
+ # below docker-run.sh fails to start up a container.
+ rm -rf artifacts/
+ mkdir -p artifacts/jenkins
+ build_name="#$BUILD_NUMBER-$current_project"
+ echo "$build_name" > artifacts/jenkins/build-name
+ # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
+ echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --arch {docker_arch} \
+ --node $NODE_NAME \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %% artifacts/manifests/bisect.sh \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_url "$bad_url" \
+ --bad_branch "$bad_branch" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ --JIRA_PASSWORD "$TCWG_JIRA_PASSWORD" \
+ -- \
+ --scripts_branch "$scripts_branch" \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $extra_build_params
+
+ if [ x"$mail_recipients" != x"default" ]; then
+ echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ fi
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ ci_project_config: '{ci_project_config}'
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - build-publishers
+ - email-ext:
+ recipients: ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
+ content-type: text
+ body: |
+ ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
+ failure: true
+ success: true
+ aborted: true
+ send-to:
+ - recipients
+#END: tcwg/round-robin.yaml.inc
+
+- job-template:
+ name: tcwg_gcc-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - "tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
+ queue-scanning: 'ALL'
+ parameters:
+ - build-parameters:
+ ci_project: 'tcwg_gnu'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ gcc_url: '{gcc_url}'
+ default_branch: 'default'
+ disabled: false
+ node: '{node} && tcwg-build'
+ concurrent: false
+ display-name: 'TCWG Build tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ triggers:
+ - pollscm:
+ cron: 'H H H/2 * *'
+ wrappers:
+ - build-wrappers:
+ timeout: 1000
+ builders:
+ - run-build:
+ build_script: 'tcwg_gnu-build.sh'
+ components: 'gcc'
+ rr_project: 'tcwg_gcc'
+ ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ docker_arch: '{docker_arch}'
+ target: '{target}'
+ type_of_test: '{type_of_test}'
+ publishers:
+ - build-publishers
+ - email-ext:
+ recipients: 'tcwg-gcc@linaro.org'
+ aborted: true
+ failure: false
+ success: false
+
+- job-template:
+ name: tcwg_gcc-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ - build-blocker:
+ # Run at most 1 bisect job for all configurations.
+ # Bisect jobs can easily run for 5+ hours, and a few of them
+ # can hog the entire TCWG build farm for a long time. Since
+ # same regression tends to appear in multiple configurations,
+ # run bisections for all configurations in-order.
+ blocking-jobs:
+ - "tcwg_gcc-bisect-.*"
+ queue-scanning: 'BUILDABLE'
+ parameters:
+ - bisect-parameters:
+ ci_project: 'tcwg_gnu'
+ ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ disabled: false
+ node: '{node} && tcwg-bisect'
+ concurrent: false
+ display-name: 'TCWG Bisect tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 6000
+ builders:
+ - run-bisect:
+ build_script: 'tcwg_gnu-build.sh'
+ rr_project: 'tcwg_gcc'
+ ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ docker_arch: '{docker_arch}'
+ publishers:
+ - bisect-publishers
+# checksum: ca389538d0035722b319a0466acfdb4e
diff --git a/tcwg_gnu.yaml b/tcwg_gnu.yaml
index 68eb047a2c..33e8b499d3 100644
--- a/tcwg_gnu.yaml
+++ b/tcwg_gnu.yaml
@@ -1,487 +1,38 @@
-# Auto generated from tcwg_gnu.yaml.in and tcwg_gnu/tcwg_gnu.def. Do not edit.
- project:
name: tcwg_gnu
toolchain_name:
- - gnu:
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- gcc_url: https://github.com/gcc-mirror/gcc.git
+ - gnu
toolchain_ver:
- - master:
- binutils_branch: master
- gcc_branch: master
- - release:
- binutils_branch: binutils-2_33-branch
- gcc_branch: releases/gcc-9
+ - master
+ - release
target:
- - aarch64:
- node: tcwg-build && tcwg-armv8_64
- docker_arch: arm64
- - arm:
- node: tcwg-build && tcwg-armv8_32
- docker_arch: armhf
+ - aarch64
+ - arm
type_of_test:
- - bootstrap_O1:
- components: gcc
- - bootstrap_O3:
- components: gcc
- - bootstrap_debug:
- components: gcc
- - bootstrap_profiled:
- components: gcc
- - bootstrap_profiled_lto:
- components: gcc
- - bootstrap_profiled_lto_lean:
- components: gcc
- - bootstrap_ubsan:
- components: gcc
- - check_binutils:
- components: binutils
- - check_bootstrap:
- components: gcc
- - check_bootstrap_lto:
- components: gcc
+ - bootstrap_O1
+ - bootstrap_O3
+ - bootstrap_debug
+ - bootstrap_profiled
+ - bootstrap_profiled_lto
+ - bootstrap_profiled_lto_lean
+ - bootstrap_ubsan
+ - check_binutils
+ - check_bootstrap
+ - check_bootstrap_lto
jobs:
- 'tcwg_gnu-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- 'tcwg_gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
-- view:
- name: tcwg_gnu
- view-type: list
- regex: 'tcwg_gnu-.*'
-
-#BEGIN: tcwg/round-robin.yaml.inc
-# -*- mode: Yaml -*-
-
-#BEGIN: tcwg/default.yaml.inc
-# -*- mode: Yaml -*-
-
-- property:
- name: default-properties
- properties:
- - authorization:
- anonymous:
- - job-read
- - job-extended-read
- linaro:
- - job-build
- - job-cancel
- - build-discarder:
- days-to-keep: 30
- num-to-keep: 30
-#END: tcwg/default.yaml.inc
-
-- parameter:
- name: default-parameters
- parameters:
- - string:
- name: ci_project
- default: '{ci_project}'
- description: "CI project ID; used as namespace for git branches"
- - string:
- name: ci_config
- default: '{ci_config}'
- description: "CI configuration ID"
- - string:
- name: extra_build_params
- default: ""
- description: "Extra parameters to pass to the build script"
- - string:
- name: mail_recipients
- default: default
- description: "Comma-separated list of email recipients; use 'default' unless testing"
- - string:
- name: distro
- default: bionic
- description: 'Distro image to use'
- - string:
- name: scripts_branch
- default: master
- description: 'Scripts revision to use'
-
-- scm:
- name: jenkins-scripts
- scm:
- - 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
- reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-
-- parameter:
- name: component-parameters
- parameters:
- - string:
- name: '{component}_url'
- default: '{url}'
- description: "{component} git URL"
- - string:
- name: '{component}_branch'
- default: '{branch}'
- description: "{component} branch or sha1 to build, or 'baseline'"
-
-- parameter:
- name: build-parameters
- parameters:
- - component-parameters:
- component: binutils
- url: '{binutils_url}'
- branch: '{default_branch}'
- - component-parameters:
- component: gcc
- url: '{gcc_url}'
- branch: '{default_branch}'
- - choice:
- name: update_baseline
- choices:
- - update
- - reset
- - init
- - push
- description: "What to do with baseline in this build"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
-
-- scm:
- name: component-scm
- scm:
- - git:
- url: '{url}'
- branches:
- - 'refs/heads/{branch}'
- basedir: '{component}'
- skip-tag: true
- reference-repo: /home/tcwg-buildslave/snapshots-ref/'{reference}'
- wipe-workspace: false
- clean:
- before: true
- prune: true
-
-- scm:
- name: build-scms
- scm:
- - jenkins-scripts
-
-- wrapper:
- name: build-wrappers
- wrappers:
- - timeout:
- timeout: '{timeout}'
- - timestamps
- - ssh-agent-credentials:
- # tcwg-buildslave user id
- users:
- - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
-
-- builder:
- name: trigger-followup-builds
- builders:
- - build-name-setter:
- name: 'artifacts/jenkins/build-name'
- file: true
- - shell: |
- #!/bin/bash
- set -ex
- for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
- if [ -f $i ]; then
- echo "ci_project=$ci_project" >> $i
- echo "ci_config=$ci_config" >> $i
- echo "mail_recipients=$mail_recipients" >> $i
- echo "distro=$distro" >> $i
- echo "scripts_branch=$scripts_branch" >> $i
- fi
- done
- - trigger-builds:
- - project: '{rr_project}-build-{ci_project_config}'
- parameter-factories:
- - factory: filebuild
- file-pattern: artifacts/trigger-build-*
- - project: '{rr_project}-bisect-{ci_project_config}'
- property-file: artifacts/trigger-bisect
-
-- builder:
- name: run-build
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
-
- dryruncmd=""
- # Don't run these known-bad configurations.
- case {target}-{type_of_test} in
- aarch64-bootstrap_profiled|\
- aarch64-bootstrap_profiled_lto|\
- aarch64-bootstrap_profiled_lto_lean|\
- aarch64-check_bootstrap_lto|\
- arm-bootstrap_profiled|\
- arm-bootstrap_profiled_lto*|\
- arm-check_bootstrap_lto)
- echo "Known bad configuration, not running."
- echo "Would have run:"
- # So we know it wasn't an infrastructure failure
- touch artifacts/failures
- dryruncmd="echo"
- ;;
- esac
-
- branch_opt=""
- # 1 to skip jenkins-scripts
- i=1
- for c in {components}; do
- eval "u=\$$$${{c}}_url"
- eval "b=\$$$${{c}}_branch"
- if [ x"$b" != x"baseline" ]; then
- build_name="$build_name-$c"
- branch_opt="$branch_opt ==rr[${{c}}_url] $u ==rr[${{c}}_branch] $b"
- fi
- done
-
- $dryruncmd \
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --arch {docker_arch} \
- --node $NODE_NAME \
- -- \
- ./jenkins-scripts/{build_script} \
- %% artifacts/jenkins/manifest.sh \
- --BUILD_URL "$BUILD_URL" \
- --scripts_branch "$scripts_branch" \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $branch_opt \
- ==rr[mode] "jenkins-full" \
- ==rr[update_baseline] "$update_baseline" \
- $extra_build_params &
- res=0 && wait $! || res=$?
-
- # If we didn't run the docker command
- if [ -n "$dryruncmd" ]; then
- # Mark build unstable aka a skipped config
- exit 100
- fi
-
- if [ $res != 0 ]; then
- touch artifacts/failures
- fi
-
- if [ -e artifacts/results ]; then
- build_name="$build_name-R$(tail -n1 artifacts/results)"
- fi
- if [ x"$update_baseline" != x"update" ]; then
- build_name="$build_name-$update_baseline"
- fi
- if [ -f artifacts/trigger-bisect ]; then
- build_name="$build_name-bisect"
- fi
- echo "$build_name" > artifacts/jenkins/build-name
- unstable-return: 100
- - conditional-step:
- # Only run if above succeeded
- # Meaning we did not skip a bad config
- # (a failed build is indicated by artifacts/failures)
- condition-kind: current-status
- steps:
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
- - shell: |
- #!/bin/bash
- if [ -f artifacts/failures ]; then
- exit 1
- fi
-
-- publisher:
- name: build-publishers
- publishers:
- - archive:
- artifacts: 'artifacts/**'
- latest-only: false
-
-- parameter:
- name: bisect-parameters
- parameters:
- - string:
- name: current_project
- default: ""
- description: "Project to bisect"
- - string:
- name: bad_url
- default: ""
- description: "Bad git URL"
- - string:
- name: bad_branch
- default: ""
- description: "Bad branch or sha1"
- - file:
- name: jenkins-scripts/replay_log
- description: "Replay part of bisect using provided bisect log"
- - default-parameters:
- ci_project: '{ci_project}'
- ci_config: '{ci_config}'
-
-- wrapper:
- name: bisect-wrappers
- wrappers:
- - build-wrappers:
- timeout: '{timeout}'
-
-- builder:
- name: run-bisect
- builders:
- - shell:
- command: |
- #!/bin/bash
- set -ex
- # Delete artifacts now to avoid re-using stale artifacts if
- # below docker-run.sh fails to start up a container.
- rm -rf artifacts/
- mkdir -p artifacts/jenkins
- echo "$build_name" > artifacts/jenkins/build-name
- # artifacts/jenkins/mail-*.txt will be overwritten in successful builds.
- echo "prathamesh.kulkarni@linaro.org,tcwg-gcc@linaro.org" > artifacts/jenkins/mail-recipients.txt
- echo "Build $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
-
- ./jenkins-scripts/docker-run.sh \
- --distro $distro \
- --arch {docker_arch} \
- --node $NODE_NAME \
- -- \
- ./jenkins-scripts/round-robin-bisect.sh \
- %% artifacts/manifests/bisect.sh \
- --BUILD_URL "$BUILD_URL" \
- --current_project "$current_project" \
- --bad_url "$bad_url" \
- --bad_branch "$bad_branch" \
- --replay_log "$(pwd)/jenkins-scripts/replay_log" \
- --build_script "./jenkins-scripts/{build_script}" \
- -- \
- --scripts_branch "$scripts_branch" \
- ==rr[ci_project] $ci_project \
- ==rr[ci_config] $ci_config \
- $extra_build_params
-
- if [ x"$mail_recipients" != x"default" ]; then
- echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
- fi
- - trigger-followup-builds:
- rr_project: '{rr_project}'
- ci_project_config: '{ci_project_config}'
-
-- publisher:
- name: bisect-publishers
- publishers:
- - build-publishers
- - email-ext:
- recipients: ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}}
- content-type: text
- body: |
- ${{FILE,path="artifacts/jenkins/mail-body.txt"}}
- failure: true
- success: true
- aborted: true
- send-to:
- - recipients
-#END: tcwg/round-robin.yaml.inc
-
- job-template:
name: tcwg_gnu-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
project-type: freestyle
defaults: global
- properties:
- - default-properties
- - build-blocker:
- blocking-jobs:
- - "tcwg_gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
- queue-scanning: 'ALL'
- parameters:
- - build-parameters:
- ci_project: 'tcwg_gnu'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- binutils_url: '{binutils_url}'
- gcc_url: '{gcc_url}'
- default_branch: 'default'
- disabled: false
- node: '{node} && tcwg-amp'
- concurrent: false
- display-name: 'TCWG Build tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
- scm:
- - build-scms:
- binutils_url: '{binutils_url}'
- binutils_branch: '{binutils_branch}'
- gcc_url: '{gcc_url}'
- gcc_branch: '{gcc_branch}'
- triggers:
- - pollscm:
- cron: 'H H H/2 * *'
- wrappers:
- - build-wrappers:
- timeout: 1000
- builders:
- - run-build:
- build_script: 'tcwg_gnu-build.sh'
- components: '{components}'
- rr_project: 'tcwg_gnu'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- docker_arch: '{docker_arch}'
- target: '{target}'
- type_of_test: '{type_of_test}'
- publishers:
- - build-publishers
- - email-ext:
- recipients: 'tcwg-gcc@linaro.org'
- aborted: true
- failure: false
- success: false
+ disabled: true
+ display-name: 'DELETE ME'
- job-template:
name: tcwg_gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
project-type: freestyle
defaults: global
- properties:
- - default-properties
- - build-blocker:
- # Run at most 1 bisect job for all configurations.
- # Bisect jobs can easily run for 5+ hours, and a few of them
- # can hog the entire TCWG build farm for a long time. Since
- # same regression tends to appear in multiple configurations,
- # run bisections for all configurations in-order.
- blocking-jobs:
- - "tcwg_gnu-bisect-.*"
- queue-scanning: 'BUILDABLE'
- parameters:
- - bisect-parameters:
- ci_project: 'tcwg_gnu'
- ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- disabled: false
- node: '{node} && tcwg-d05'
- concurrent: false
- display-name: 'TCWG Bisect tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
- scm:
- - jenkins-scripts
- wrappers:
- - bisect-wrappers:
- timeout: 6000
- builders:
- - run-bisect:
- build_script: 'tcwg_gnu-build.sh'
- rr_project: 'tcwg_gnu'
- ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- docker_arch: '{docker_arch}'
- publishers:
- - bisect-publishers
-# checksum: 0c2e9f48bde7205da0e653a0300d4a30
+ disabled: true
+ display-name: 'DELETE ME'
diff --git a/tcwg_gnu.yaml.in b/tcwg_gnu.yaml.in
index 68a2130944..8307078426 100644
--- a/tcwg_gnu.yaml.in
+++ b/tcwg_gnu.yaml.in
@@ -1,83 +1,121 @@
- project:
- name: tcwg_gnu
- toolchain_name:
- - gnu:
- binutils_url: git://sourceware.org/git/binutils-gdb.git
- gcc_url: https://github.com/gcc-mirror/gcc.git
+ name: #{RR}
+ toolchain_name: gnu
+#if COMPONENTS_binutils
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+#endif
+#if COMPONENTS_gcc
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+#endif
+#if COMPONENTS_glibc
+ glibc_url: git://sourceware.org/git/glibc.git
+#endif
+#if COMPONENTS_qemu
+ qemu_url: https://git.qemu.org/git/qemu.git
+#endif
toolchain_ver:
- master:
+#if COMPONENTS_binutils
binutils_branch: master
+#endif
+#if COMPONENTS_gcc
gcc_branch: master
+#endif
+#if COMPONENTS_glibc
+ glibc_branch: master
+#endif
+#if COMPONENTS_qemu
+ qemu_branch: master
+#endif
- release:
+#if COMPONENTS_binutils
binutils_branch: binutils-2_33-branch
+#endif
+#if COMPONENTS_gcc
gcc_branch: releases/gcc-9
+#endif
+#if COMPONENTS_glibc
+ glibc_branch: release/2.30/master
+#endif
+#if COMPONENTS_qemu
+ qemu_branch: stable-4.1
+#endif
target:
+#if RR_tcwg_cross
+ - aarch64
+ - arm
+ node: tcwg-build && tcwg-armv8_32
+#else
- aarch64:
- node: tcwg-build && tcwg-armv8_64
+ node: tcwg-armv8_64
docker_arch: arm64
- arm:
- node: tcwg-build && tcwg-armv8_32
+ node: tcwg-armv8_32
docker_arch: armhf
+#endif
type_of_test:
- - bootstrap_O1:
- components: gcc
- - bootstrap_O3:
- components: gcc
- - bootstrap_debug:
- components: gcc
- - bootstrap_profiled:
- components: gcc
- - bootstrap_profiled_lto:
- components: gcc
- - bootstrap_profiled_lto_lean:
- components: gcc
- - bootstrap_ubsan:
- components: gcc
- - check_binutils:
- components: binutils
- - check_bootstrap:
- components: gcc
- - check_bootstrap_lto:
- components: gcc
+#if RR_tcwg_binutils
+ - check_binutils
+#elif RR_tcwg_cross
+ - check_cross
+#elif RR_tcwg_gcc
+ - bootstrap_O1
+ - bootstrap_O3
+ - bootstrap_debug
+ - bootstrap_profiled
+ - bootstrap_profiled_lto
+ - bootstrap_profiled_lto_lean
+ - bootstrap_ubsan
+ - check_bootstrap
+ - check_bootstrap_lto
+#endif
jobs:
- - 'tcwg_gnu-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- - 'tcwg_gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - '#{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+ - '#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
- view:
- name: tcwg_gnu
+ name: #{RR}
view-type: list
- regex: 'tcwg_gnu-.*'
+ regex: '#{RR}-.*'
#include tcwg/round-robin.yaml.inc
- job-template:
- name: tcwg_gnu-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: #{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
project-type: freestyle
defaults: global
properties:
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
+ - "#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}"
queue-scanning: 'ALL'
parameters:
- build-parameters:
ci_project: 'tcwg_gnu'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
+#if COMPONENTS_binutils
binutils_url: '{binutils_url}'
+#endif
+#if COMPONENTS_gcc
gcc_url: '{gcc_url}'
+#endif
default_branch: 'default'
disabled: false
- node: '{node} && tcwg-amp'
+ node: '{node} && tcwg-build'
concurrent: false
display-name: 'TCWG Build tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
scm:
- build-scms:
+#if COMPONENTS_binutils
binutils_url: '{binutils_url}'
binutils_branch: '{binutils_branch}'
+#endif
+#if COMPONENTS_gcc
gcc_url: '{gcc_url}'
gcc_branch: '{gcc_branch}'
+#endif
triggers:
- pollscm:
cron: 'H H H/2 * *'
@@ -87,8 +125,8 @@
builders:
- run-build:
build_script: 'tcwg_gnu-build.sh'
- components: '{components}'
- rr_project: 'tcwg_gnu'
+ components: '#{COMPONENTS}'
+ rr_project: '#{RR}'
ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
target: '{target}'
@@ -102,7 +140,7 @@
success: false
- job-template:
- name: tcwg_gnu-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
+ name: #{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}
project-type: freestyle
defaults: global
properties:
@@ -114,14 +152,14 @@
# same regression tends to appear in multiple configurations,
# run bisections for all configurations in-order.
blocking-jobs:
- - "tcwg_gnu-bisect-.*"
+ - "#{RR}-bisect-.*"
queue-scanning: 'BUILDABLE'
parameters:
- bisect-parameters:
ci_project: 'tcwg_gnu'
ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
disabled: false
- node: '{node} && tcwg-d05'
+ node: '{node} && tcwg-bisect'
concurrent: false
display-name: 'TCWG Bisect tcwg_gnu/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER
@@ -133,7 +171,7 @@
builders:
- run-bisect:
build_script: 'tcwg_gnu-build.sh'
- rr_project: 'tcwg_gnu'
+ rr_project: '#{RR}'
ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}'
docker_arch: '{docker_arch}'
publishers:
diff --git a/tcwg_gnu/tcwg_binutils.def b/tcwg_gnu/tcwg_binutils.def
new file mode 100644
index 0000000000..fd83fca420
--- /dev/null
+++ b/tcwg_gnu/tcwg_binutils.def
@@ -0,0 +1,3 @@
+-v COMPONENTS=binutils
+-v PURPOSE=ci
+-v RR=tcwg_binutils
diff --git a/tcwg_gnu/tcwg_gcc.def b/tcwg_gnu/tcwg_gcc.def
new file mode 100644
index 0000000000..d158409c45
--- /dev/null
+++ b/tcwg_gnu/tcwg_gcc.def
@@ -0,0 +1,3 @@
+-v COMPONENTS=gcc
+-v PURPOSE=ci
+-v RR=tcwg_gcc
diff --git a/tcwg_gnu/tcwg_gnu.def b/tcwg_gnu/tcwg_gnu.def
deleted file mode 100644
index 72bd629292..0000000000
--- a/tcwg_gnu/tcwg_gnu.def
+++ /dev/null
@@ -1,3 +0,0 @@
--v COMPONENTS=binutils
--v COMPONENTS=gcc
--v RR=tcwg_gnu