aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Alfonsi <laurent.alfonsi@linaro.org>2022-06-17 19:09:42 +0200
committerLaurent Alfonsi <laurent.alfonsi@linaro.org>2022-06-17 19:14:11 +0200
commit7082ceff9752b4f6eb87f4aa7c7de0159d4b4a2a (patch)
tree76c5b95a7ab0c69e0b529cd1b6dfa5842fb459ad
parentfa15d4e8e84b9a6ed76dfabcab11641e2b515a4f (diff)
downloadconfigs-7082ceff9752b4f6eb87f4aa7c7de0159d4b4a2a.tar.gz
tcwg_bmk_ci*: back to previous state (too many jobs would overload)
Change-Id: Icffc2b2858262f00e8f7f1f80808dac7525b6715
-rw-r--r--tcwg_bmk_ci.yaml.in54
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_gnu.def2
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_gnu_cpu2017.def9
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def2
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_llvm.def2
-rw-r--r--tcwg_bmk_ci/tcwg_bmk_ci_llvm_cpu2017.def10
-rw-r--r--tcwg_bmk_ci_gnu.yaml11
-rw-r--r--tcwg_bmk_ci_gnu_cpu2017.yaml604
-rw-r--r--tcwg_bmk_ci_gnu_eabi.yaml10
-rw-r--r--tcwg_bmk_ci_llvm.yaml11
-rw-r--r--tcwg_bmk_ci_llvm_cpu2017.yaml618
11 files changed, 1282 insertions, 51 deletions
diff --git a/tcwg_bmk_ci.yaml.in b/tcwg_bmk_ci.yaml.in
index 8f48ea3e45..61d7e8202a 100644
--- a/tcwg_bmk_ci.yaml.in
+++ b/tcwg_bmk_ci.yaml.in
@@ -1,6 +1,6 @@
# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
- project:
- name: tcwg_bmk_ci_#{TOOLCHAIN}
+ name: tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}
binutils_url: git://sourceware.org/git/binutils-gdb.git
gcc_url: https://github.com/gcc-mirror/gcc.git
#if !TOOLCHAIN_gnu_eabi
@@ -22,6 +22,7 @@
target: aarch64
- sq:
target: aarch64
+#if !BMK_cpu2017
- apm:
target: arm
- apm:
@@ -31,14 +32,11 @@
- tx1:
target: aarch64
#endif
+#endif
toolchain_name: #{TOOLCHAIN}
components: #{COMPONENTS}
bmk:
-#if TOOLCHAIN_gnu_eabi
- - coremark
-#else
- - spec2k6
-#endif
+ - #{BMK}
cflags:
- Os
- Os_LTO
@@ -51,15 +49,11 @@
- Oz_LTO
#endif
jobs:
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-master'
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-release'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-master'
+#if !BMK_cpu2017
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-release'
+#endif
exclude:
- - bmk: cpu2017
- hw: apm
- - bmk: cpu2017
- hw: tk1
- - bmk: cpu2017
- hw: tx1
- hw: fx
cflags: Os
- hw: fx
@@ -75,6 +69,8 @@
- hw: sq
cflags: Os_LTO
- hw: sq
+ cflags: Oz
+ - hw: sq
cflags: Oz_LTO
- hw: sq
cflags: O2
@@ -110,7 +106,7 @@
cflags: Oz_LTO
- job-group:
- name: tcwg_bmk_ci_#{TOOLCHAIN}-master
+ name: tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-master
toolchain_ver: master
binutils_branch: refs/heads/master
gcc_branch: refs/heads/master
@@ -125,11 +121,12 @@
distro: lts
cron_schedule: 'H H H/3 * *'
jobs:
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+#if !BMK_cpu2017
- job-group:
- name: tcwg_bmk_ci_#{TOOLCHAIN}-release
+ name: tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-release
toolchain_ver: release
binutils_branch: refs/heads/binutils-2_38-branch
gcc_branch: refs/heads/releases/gcc-12
@@ -144,25 +141,26 @@
distro: lts_1
cron_schedule: 'H H H/6 * *'
jobs:
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
- - 'tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
+#endif
- view:
- name: tcwg_bmk_ci_#{TOOLCHAIN}
+ name: tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}
view-type: list
- regex: 'tcwg_bmk_ci_#{TOOLCHAIN}-build-.*'
+ regex: 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-build-.*'
#include tcwg/round-robin.yaml.inc
- job-template:
- name: tcwg_bmk_ci_#{TOOLCHAIN}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}
+ name: tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-build-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}
project-type: freestyle
defaults: global
properties:
- default-properties
- build-blocker:
blocking-jobs:
- - "tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}"
+ - "tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}"
queue-scanning: 'ALL'
parameters:
- build-parameters:
@@ -208,13 +206,13 @@
- run-build:
build_script: 'tcwg_bmk-build.sh'
components: '{components}'
- rr_project: 'tcwg_bmk_ci_#{TOOLCHAIN}'
+ rr_project: 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}'
job_suffix: '-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- build-publishers
- job-template:
- name: tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}
+ name: tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}
project-type: freestyle
defaults: global
properties:
@@ -226,7 +224,7 @@
# same regression tends to appear in multiple configurations,
# run bisections for all configurations in-order.
blocking-jobs:
- - "tcwg_bmk_ci_#{TOOLCHAIN}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-.*"
+ - "tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}-bisect-tcwg_bmk_{hw}-#{TOOLCHAIN}-.*"
queue-scanning: 'BUILDABLE'
parameters:
- bisect-parameters:
@@ -251,7 +249,7 @@
builders:
- run-bisect:
build_script: 'tcwg_bmk-build.sh'
- rr_project: 'tcwg_bmk_ci_#{TOOLCHAIN}'
+ rr_project: 'tcwg_bmk_ci_#{TOOLCHAIN}#{JOBNAME_EXT}'
job_suffix: '-tcwg_bmk_{hw}-#{TOOLCHAIN}-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def b/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def
index b2eeff9a15..7391cb3c45 100644
--- a/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def
+++ b/tcwg_bmk_ci/tcwg_bmk_ci_gnu.def
@@ -5,3 +5,5 @@
-v PURPOSE=ci
-v RR=tcwg_bmk
-v TOOLCHAIN=gnu
+-v BMK=spec2k6
+-v JOBNAME_EXT=
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_gnu_cpu2017.def b/tcwg_bmk_ci/tcwg_bmk_ci_gnu_cpu2017.def
new file mode 100644
index 0000000000..74c9a3f17a
--- /dev/null
+++ b/tcwg_bmk_ci/tcwg_bmk_ci_gnu_cpu2017.def
@@ -0,0 +1,9 @@
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v PURPOSE=ci
+-v RR=tcwg_bmk
+-v TOOLCHAIN=gnu
+-v BMK=cpu2017
+-v JOBNAME_EXT=_cpu2017
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def b/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def
index 3df65fad82..10a6adb4ba 100644
--- a/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def
+++ b/tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def
@@ -4,3 +4,5 @@
-v PURPOSE=ci
-v RR=tcwg_bmk
-v TOOLCHAIN=gnu_eabi
+-v BMK=coremark
+-v JOBNAME_EXT=
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def b/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def
index 5278227d4d..89aa8c0c83 100644
--- a/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def
+++ b/tcwg_bmk_ci/tcwg_bmk_ci_llvm.def
@@ -6,3 +6,5 @@
-v PURPOSE=ci
-v RR=tcwg_bmk
-v TOOLCHAIN=llvm
+-v BMK=spec2k6
+-v JOBNAME_EXT=
diff --git a/tcwg_bmk_ci/tcwg_bmk_ci_llvm_cpu2017.def b/tcwg_bmk_ci/tcwg_bmk_ci_llvm_cpu2017.def
new file mode 100644
index 0000000000..e9b0358fe1
--- /dev/null
+++ b/tcwg_bmk_ci/tcwg_bmk_ci_llvm_cpu2017.def
@@ -0,0 +1,10 @@
+-v COMPONENTS=binutils
+-v COMPONENTS=gcc
+-v COMPONENTS=glibc
+-v COMPONENTS=linux
+-v COMPONENTS=llvm
+-v PURPOSE=ci
+-v RR=tcwg_bmk
+-v TOOLCHAIN=llvm
+-v BMK=cpu2017
+-v JOBNAME_EXT=_cpu2017
diff --git a/tcwg_bmk_ci_gnu.yaml b/tcwg_bmk_ci_gnu.yaml
index 42b85a08ed..bd10bbe961 100644
--- a/tcwg_bmk_ci_gnu.yaml
+++ b/tcwg_bmk_ci_gnu.yaml
@@ -24,7 +24,6 @@
components: binutils gcc glibc linux
bmk:
- spec2k6
- - cpu2017
cflags:
- Os
- Os_LTO
@@ -36,12 +35,6 @@
- 'tcwg_bmk_ci_gnu-master'
- 'tcwg_bmk_ci_gnu-release'
exclude:
- - bmk: cpu2017
- hw: apm
- - bmk: cpu2017
- hw: tk1
- - bmk: cpu2017
- hw: tx1
- hw: fx
cflags: Os
- hw: fx
@@ -57,6 +50,8 @@
- hw: sq
cflags: Os_LTO
- hw: sq
+ cflags: Oz
+ - hw: sq
cflags: Oz_LTO
- hw: sq
cflags: O2
@@ -626,4 +621,4 @@
job_suffix: '-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
-# checksum: cc02fb68c87ce08662d3c65bb99f78ae
+# checksum: 1e918bbec8cd9574fe43e7213a65ee41
diff --git a/tcwg_bmk_ci_gnu_cpu2017.yaml b/tcwg_bmk_ci_gnu_cpu2017.yaml
new file mode 100644
index 0000000000..34bb749caf
--- /dev/null
+++ b/tcwg_bmk_ci_gnu_cpu2017.yaml
@@ -0,0 +1,604 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_ci.yaml.in and tcwg_bmk_ci/tcwg_bmk_ci_gnu_cpu2017.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk_ci_gnu_cpu2017
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+ hw:
+ - fx:
+ target: aarch64
+ - sq:
+ target: aarch64
+ toolchain_name: gnu
+ components: binutils gcc glibc linux
+ bmk:
+ - cpu2017
+ cflags:
+ - Os
+ - Os_LTO
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ jobs:
+ - 'tcwg_bmk_ci_gnu_cpu2017-master'
+ exclude:
+ - hw: fx
+ cflags: Os
+ - hw: fx
+ cflags: Os_LTO
+ - hw: fx
+ cflags: Oz
+ - hw: fx
+ cflags: Oz_LTO
+ - hw: fx
+ cflags: O2_LTO
+ - hw: fx
+ cflags: O3_LTO
+ - hw: sq
+ cflags: Os_LTO
+ - hw: sq
+ cflags: Oz
+ - hw: sq
+ cflags: Oz_LTO
+ - hw: sq
+ cflags: O2
+ - hw: sq
+ cflags: O2_LTO
+ - hw: sq
+ cflags: O3
+ - hw: sq
+ cflags: O3_LTO
+ - hw: apm
+ cflags: O2
+ - hw: apm
+ cflags: O2_LTO
+ - hw: apm
+ cflags: O3
+ - hw: apm
+ cflags: O3_LTO
+ - hw: tk1
+ cflags: Os
+ - hw: tk1
+ cflags: Os_LTO
+ - hw: tk1
+ cflags: Oz
+ - hw: tk1
+ cflags: Oz_LTO
+ - hw: tx1
+ cflags: Os
+ - hw: tx1
+ cflags: Os_LTO
+ - hw: tx1
+ cflags: Oz
+ - hw: tx1
+ cflags: Oz_LTO
+
+- job-group:
+ name: tcwg_bmk_ci_gnu_cpu2017-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ distro: lts
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk_ci_gnu_cpu2017-build-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_gnu_cpu2017-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+
+
+- view:
+ name: tcwg_bmk_ci_gnu_cpu2017
+ view-type: list
+ regex: 'tcwg_bmk_ci_gnu_cpu2017-build-.*'
+
+#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
+
+- 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
+
+- scm:
+ name: bmk-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/bmk-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $bmk_branch
+ basedir: bmk-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+#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 and selects benchmarking hardware"
+ - string:
+ name: ci_config
+ default: '{ci_config}'
+ description: "CI configuration ID; used as name of git branches and selects build flags"
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: mail_recipients
+ default: default
+ description: "Comma-separated list of email recipients"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm'"
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+ - 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}'
+ distro: '{distro}'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: binutils
+ url: '{binutils_url}'
+ branch: '{binutils_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
+ component: gcc
+ url: '{gcc_url}'
+ branch: '{gcc_branch}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - bmk-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
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - 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
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
+
+- 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=""
+
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
+ build_name="#$BUILD_NUMBER"
+ branch_opt=""
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in {components}; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
+ fi
+ i=$(($i+1))
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
+ fi
+ done
+
+ $dryruncmd \
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/{build_script} \
+ %% artifacts/jenkins/manifest.sh \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ $branch_opt \
+ ==rr[mode] "jenkins-full" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f 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-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
+ unstable-return: 125
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
+
+- 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_git
+ default: ""
+ description: "Bad git_url#branch/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}'
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- 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 "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "[TCWG CI] Bisect failed" > artifacts/jenkins/mail-subject.txt
+ echo "Bisect $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %% artifacts/manifests/bisect.sh \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ __TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
+ -- \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+
+ if [ x"$mail_recipients" != x"default" ]; then
+ echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ fi
+ unstable-return: 125
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - build-publishers
+ - email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
+ recipients: |
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
+ subject: |
+ ${FILE,path="artifacts/jenkins/mail-subject.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_bmk_ci_gnu_cpu2017-build-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - "tcwg_bmk_ci_gnu_cpu2017-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}"
+ queue-scanning: 'ALL'
+ parameters:
+ - build-parameters:
+ ci_project: 'tcwg_bmk_gnu_{hw}'
+ ci_config: 'gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build_bmk
+ concurrent: false
+ display-name: 'TCWG Build tcwg_bmk_{hw}/gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ build_script: 'tcwg_bmk-build.sh'
+ components: '{components}'
+ rr_project: 'tcwg_bmk_ci_gnu_cpu2017'
+ job_suffix: '-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ publishers:
+ - build-publishers
+
+- job-template:
+ name: tcwg_bmk_ci_gnu_cpu2017-bisect-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}
+ 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_bmk_ci_gnu_cpu2017-bisect-tcwg_bmk_{hw}-gnu-.*"
+ queue-scanning: 'BUILDABLE'
+ parameters:
+ - bisect-parameters:
+ ci_project: 'tcwg_bmk_gnu_{hw}'
+ ci_config: 'gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build_bmk
+ concurrent: false
+ display-name: 'TCWG Bisect tcwg_bmk_{hw}/gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ build_script: 'tcwg_bmk-build.sh'
+ rr_project: 'tcwg_bmk_ci_gnu_cpu2017'
+ job_suffix: '-tcwg_bmk_{hw}-gnu-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ publishers:
+ - bisect-publishers
+# checksum: b2b3ec5b4e4be8533b58ecb5a739aecf
diff --git a/tcwg_bmk_ci_gnu_eabi.yaml b/tcwg_bmk_ci_gnu_eabi.yaml
index 5795c2370a..5154441b8d 100644
--- a/tcwg_bmk_ci_gnu_eabi.yaml
+++ b/tcwg_bmk_ci_gnu_eabi.yaml
@@ -23,12 +23,6 @@
- 'tcwg_bmk_ci_gnu_eabi-master'
- 'tcwg_bmk_ci_gnu_eabi-release'
exclude:
- - bmk: cpu2017
- hw: apm
- - bmk: cpu2017
- hw: tk1
- - bmk: cpu2017
- hw: tx1
- hw: fx
cflags: Os
- hw: fx
@@ -44,6 +38,8 @@
- hw: sq
cflags: Os_LTO
- hw: sq
+ cflags: Oz
+ - hw: sq
cflags: Oz_LTO
- hw: sq
cflags: O2
@@ -603,4 +599,4 @@
job_suffix: '-tcwg_bmk_{hw}-gnu_eabi-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
-# checksum: d92ca9827ab7e85e1fd626a63be39458
+# checksum: 3f24c28f0ffeeff0367eb4a515bf133d
diff --git a/tcwg_bmk_ci_llvm.yaml b/tcwg_bmk_ci_llvm.yaml
index c0c48e0ca9..4f38516e3b 100644
--- a/tcwg_bmk_ci_llvm.yaml
+++ b/tcwg_bmk_ci_llvm.yaml
@@ -25,7 +25,6 @@
components: binutils gcc glibc linux llvm
bmk:
- spec2k6
- - cpu2017
cflags:
- Os
- Os_LTO
@@ -39,12 +38,6 @@
- 'tcwg_bmk_ci_llvm-master'
- 'tcwg_bmk_ci_llvm-release'
exclude:
- - bmk: cpu2017
- hw: apm
- - bmk: cpu2017
- hw: tk1
- - bmk: cpu2017
- hw: tx1
- hw: fx
cflags: Os
- hw: fx
@@ -60,6 +53,8 @@
- hw: sq
cflags: Os_LTO
- hw: sq
+ cflags: Oz
+ - hw: sq
cflags: Oz_LTO
- hw: sq
cflags: O2
@@ -641,4 +636,4 @@
job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
publishers:
- bisect-publishers
-# checksum: 31e845efc5b6ed9b1fda906012195b2b
+# checksum: 7eafd83b0468f92b24c71b6456a86fd1
diff --git a/tcwg_bmk_ci_llvm_cpu2017.yaml b/tcwg_bmk_ci_llvm_cpu2017.yaml
new file mode 100644
index 0000000000..20bab9b54d
--- /dev/null
+++ b/tcwg_bmk_ci_llvm_cpu2017.yaml
@@ -0,0 +1,618 @@
+# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_ci.yaml.in and tcwg_bmk_ci/tcwg_bmk_ci_llvm_cpu2017.def. Do not edit.
+# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/'
+- project:
+ name: tcwg_bmk_ci_llvm_cpu2017
+ binutils_url: git://sourceware.org/git/binutils-gdb.git
+ gcc_url: https://github.com/gcc-mirror/gcc.git
+ linux_url: https://git.linaro.org/kernel-org/linux-stable.git
+ linux_branch: refs/heads/linux-rolling-stable
+ glibc_url: git://sourceware.org/git/glibc.git
+ llvm_url: https://github.com/llvm/llvm-project.git
+ hw:
+ - fx:
+ target: aarch64
+ - sq:
+ target: aarch64
+ toolchain_name: llvm
+ components: binutils gcc glibc linux llvm
+ bmk:
+ - cpu2017
+ cflags:
+ - Os
+ - Os_LTO
+ - O2
+ - O2_LTO
+ - O3
+ - O3_LTO
+ - Oz
+ - Oz_LTO
+ jobs:
+ - 'tcwg_bmk_ci_llvm_cpu2017-master'
+ exclude:
+ - hw: fx
+ cflags: Os
+ - hw: fx
+ cflags: Os_LTO
+ - hw: fx
+ cflags: Oz
+ - hw: fx
+ cflags: Oz_LTO
+ - hw: fx
+ cflags: O2_LTO
+ - hw: fx
+ cflags: O3_LTO
+ - hw: sq
+ cflags: Os_LTO
+ - hw: sq
+ cflags: Oz
+ - hw: sq
+ cflags: Oz_LTO
+ - hw: sq
+ cflags: O2
+ - hw: sq
+ cflags: O2_LTO
+ - hw: sq
+ cflags: O3
+ - hw: sq
+ cflags: O3_LTO
+ - hw: apm
+ cflags: O2
+ - hw: apm
+ cflags: O2_LTO
+ - hw: apm
+ cflags: O3
+ - hw: apm
+ cflags: O3_LTO
+ - hw: tk1
+ cflags: Os
+ - hw: tk1
+ cflags: Os_LTO
+ - hw: tk1
+ cflags: Oz
+ - hw: tk1
+ cflags: Oz_LTO
+ - hw: tx1
+ cflags: Os
+ - hw: tx1
+ cflags: Os_LTO
+ - hw: tx1
+ cflags: Oz
+ - hw: tx1
+ cflags: Oz_LTO
+
+- job-group:
+ name: tcwg_bmk_ci_llvm_cpu2017-master
+ toolchain_ver: master
+ binutils_branch: refs/heads/master
+ gcc_branch: refs/heads/master
+ glibc_branch: refs/heads/master
+ llvm_branch: refs/heads/main
+ distro: lts
+ cron_schedule: 'H H H/3 * *'
+ jobs:
+ - 'tcwg_bmk_ci_llvm_cpu2017-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ - 'tcwg_bmk_ci_llvm_cpu2017-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+
+
+- view:
+ name: tcwg_bmk_ci_llvm_cpu2017
+ view-type: list
+ regex: 'tcwg_bmk_ci_llvm_cpu2017-build-.*'
+
+#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
+
+- 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
+
+- scm:
+ name: bmk-scripts
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/bmk-scripts.git
+ refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
+ branches:
+ - $bmk_branch
+ basedir: bmk-scripts
+ skip-tag: true
+ reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+#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 and selects benchmarking hardware"
+ - string:
+ name: ci_config
+ default: '{ci_config}'
+ description: "CI configuration ID; used as name of git branches and selects build flags"
+ - string:
+ name: extra_build_params
+ default: ""
+ description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config"
+ - string:
+ name: mail_recipients
+ default: default
+ description: "Comma-separated list of email recipients"
+ - string:
+ name: distro
+ default: '{distro}'
+ description: 'Distro image to use'
+ - string:
+ name: scripts_branch
+ default: master
+ description: 'Scripts revision to use'
+ - string:
+ name: bmk_branch
+ default: master
+ description: 'Benchmark scripts revision to use'
+
+- parameter:
+ name: component-parameters
+ parameters:
+ - string:
+ name: '{component}_git'
+ default: '{default_git}'
+ description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm'"
+
+- parameter:
+ name: build-parameters
+ parameters:
+ - component-parameters:
+ component: binutils
+ default_git: '{default_git}'
+ - component-parameters:
+ component: gcc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: glibc
+ default_git: '{default_git}'
+ - component-parameters:
+ component: linux
+ default_git: '{default_git}'
+ - component-parameters:
+ component: llvm
+ default_git: '{default_git}'
+ - 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}'
+ distro: '{distro}'
+
+# Beware: git branch names need the 'refs/heads/' prefix while tags
+# need 'refs/tags/'.
+- scm:
+ name: component-scm
+ scm:
+ - git:
+ url: '{url}'
+ branches:
+ - '{branch}'
+ basedir: '{component}'
+ skip-tag: true
+ reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}'
+ wipe-workspace: false
+ clean:
+ before: true
+ prune: true
+
+# SCMs must start with jenkins-scripts and then be ordered alphabetically.
+# Same alphabetical order must be followed in .def files. The reason behind
+# this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then
+# sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the
+# order that they are declared here/.
+- scm:
+ name: build-scms
+ scm:
+ - jenkins-scripts
+ - component-scm:
+ component: binutils
+ url: '{binutils_url}'
+ branch: '{binutils_branch}'
+ reference: binutils-gdb.git
+ - component-scm:
+ component: gcc
+ url: '{gcc_url}'
+ branch: '{gcc_branch}'
+ reference: gcc.git
+ - component-scm:
+ component: glibc
+ url: '{glibc_url}'
+ branch: '{glibc_branch}'
+ reference: glibc.git
+ - component-scm:
+ component: linux
+ url: '{linux_url}'
+ branch: '{linux_branch}'
+ reference: linux.git
+ - component-scm:
+ component: llvm
+ url: '{llvm_url}'
+ branch: '{llvm_branch}'
+ reference: llvm-project.git
+ - bmk-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
+ - conditional-step:
+ # Only run if above succeeded
+ # (a failed build is indicated by artifacts/failed)
+ condition-kind: current-status
+ steps:
+ - 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
+ echo "bmk_branch=$bmk_branch" >> $i
+ fi
+ done
+ - trigger-builds:
+ - project: '{rr_project}-build{job_suffix}'
+ parameter-factories:
+ - factory: filebuild
+ file-pattern: artifacts/trigger-build-*
+ - project: '{rr_project}-bisect{job_suffix}'
+ property-file: artifacts/trigger-bisect
+ - shell:
+ command: |
+ #!/bin/bash
+ if [ -f artifacts/failed ]; then
+ exit $(cat artifacts/failed)
+ fi
+ unstable-return: 125
+
+- 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=""
+
+ # Skip SCM-triggered builds if there are other builds in
+ # the queue. We need to process all pending bisection-triggered
+ # builds before fetching a new batch of upstream changes.
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ inQueue=$(curl -s "${{JOB_URL}}api/xml?tree=inQueue" \
+ | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#")
+ if [ x"$inQueue" = x"true" ]; then
+ dryruncmd="echo SKIPPING SCM BUILD:"
+ touch artifacts/jenkins/skip-scm-build
+ fi
+ fi
+
+ build_name="#$BUILD_NUMBER"
+ branch_opt=""
+ # 1 to skip jenkins-scripts
+ i=1
+ for c in {components}; do
+ eval "g=\$$$${{c}}_git"
+ if [ x"$g" = x"default" ]; then
+ if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ]; then
+ g="jenkins-scm"
+ else
+ g="baseline"
+ fi
+ fi
+ if [ x"$g" = x"jenkins-scm" ]; then
+ eval "g=\$GIT_URL_$i#\$GIT_COMMIT_$i"
+ fi
+ i=$(($i+1))
+ if [ x"$g" != x"baseline" ]; then
+ build_name="$build_name-$c"
+ branch_opt="$branch_opt ==rr[${{c}}_git] $g"
+ fi
+ done
+
+ $dryruncmd \
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/{build_script} \
+ %% artifacts/jenkins/manifest.sh \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" \
+ $branch_opt \
+ ==rr[mode] "jenkins-full" \
+ ==rr[update_baseline] "$update_baseline" \
+ --BUILD_URL "$BUILD_URL" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+
+ if [ -f artifacts/jenkins/skip-scm-build ]; then
+ build_name="$build_name-skip-scm-build"
+ fi
+ if [ -f 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-trigger-bisect"
+ fi
+ echo "$build_name" > artifacts/jenkins/build-name
+
+ # If we didn't run the docker command
+ if [ -n "$dryruncmd" ]; then
+ # Mark build unstable aka a skipped config
+ exit 125
+ fi
+ unstable-return: 125
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
+
+- 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_git
+ default: ""
+ description: "Bad git_url#branch/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}'
+ distro: '{distro}'
+
+- wrapper:
+ name: bisect-wrappers
+ wrappers:
+ - build-wrappers:
+ timeout: '{timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: TCWG_JIRA_TOKEN
+ variable: TCWG_JIRA_TOKEN
+
+- 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 "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" > artifacts/jenkins/mail-recipients.txt
+ echo "[TCWG CI] Bisect failed" > artifacts/jenkins/mail-subject.txt
+ echo "Bisect $BUILD_URL failed" > artifacts/jenkins/mail-body.txt
+
+ ./jenkins-scripts/docker-run.sh \
+ --distro $distro \
+ --ssh_info true \
+ -- \
+ ./jenkins-scripts/round-robin-bisect.sh \
+ %% artifacts/manifests/bisect.sh \
+ --BUILD_URL "$BUILD_URL" \
+ --current_project "$current_project" \
+ --bad_git "$bad_git" \
+ --replay_log "$(pwd)/jenkins-scripts/replay_log" \
+ --build_script "./jenkins-scripts/{build_script}" \
+ __TCWG_JIRA_TOKEN "$TCWG_JIRA_TOKEN" \
+ -- \
+ ==rr[ci_project] $ci_project \
+ ==rr[ci_config] $ci_config \
+ $extra_build_params \
+ --bmk_branch "$bmk_branch" \
+ --scripts_branch "$scripts_branch" &
+ res=0 && wait $! || res=$?
+
+ if [ $res != 0 ]; then
+ echo $res > artifacts/failed
+ fi
+
+ if [ x"$mail_recipients" != x"default" ]; then
+ echo "$mail_recipients" > artifacts/jenkins/mail-recipients.txt
+ fi
+ unstable-return: 125
+ - trigger-followup-builds:
+ rr_project: '{rr_project}'
+ job_suffix: '{job_suffix}'
+
+- publisher:
+ name: bisect-publishers
+ publishers:
+ - build-publishers
+ - email-ext:
+ # Strangely, we no longer need to double-{ ${FILE} macro in
+ # recipients and body sections. They appear to bypass
+ # job-template expansion.
+ recipients: |
+ ${FILE,path="artifacts/jenkins/mail-recipients.txt"}
+ subject: |
+ ${FILE,path="artifacts/jenkins/mail-subject.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_bmk_ci_llvm_cpu2017-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}
+ project-type: freestyle
+ defaults: global
+ properties:
+ - default-properties
+ - build-blocker:
+ blocking-jobs:
+ - "tcwg_bmk_ci_llvm_cpu2017-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}"
+ queue-scanning: 'ALL'
+ parameters:
+ - build-parameters:
+ ci_project: 'tcwg_bmk_llvm_{hw}'
+ ci_config: 'llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ default_git: 'default'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build_bmk
+ concurrent: false
+ display-name: 'TCWG Build tcwg_bmk_{hw}/llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - build-scms:
+ binutils_url: '{binutils_url}'
+ binutils_branch: '{binutils_branch}'
+ gcc_url: '{gcc_url}'
+ gcc_branch: '{gcc_branch}'
+ linux_url: '{linux_url}'
+ linux_branch: '{linux_branch}'
+ glibc_url: '{glibc_url}'
+ glibc_branch: '{glibc_branch}'
+ llvm_url: '{llvm_url}'
+ llvm_branch: '{llvm_branch}'
+ triggers:
+ - pollscm:
+ cron: '{cron_schedule}'
+ wrappers:
+ - build-wrappers:
+ timeout: 600
+ builders:
+ - run-build:
+ build_script: 'tcwg_bmk-build.sh'
+ components: '{components}'
+ rr_project: 'tcwg_bmk_ci_llvm_cpu2017'
+ job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ publishers:
+ - build-publishers
+
+- job-template:
+ name: tcwg_bmk_ci_llvm_cpu2017-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}
+ 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_bmk_ci_llvm_cpu2017-bisect-tcwg_bmk_{hw}-llvm-.*"
+ queue-scanning: 'BUILDABLE'
+ parameters:
+ - bisect-parameters:
+ ci_project: 'tcwg_bmk_llvm_{hw}'
+ ci_config: 'llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ distro: '{distro}'
+ disabled: false
+ node: tcwg-x86_64-build_bmk
+ concurrent: false
+ display-name: 'TCWG Bisect tcwg_bmk_{hw}/llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER
+ scm:
+ - jenkins-scripts
+ - bmk-scripts
+ wrappers:
+ - bisect-wrappers:
+ timeout: 2880
+ builders:
+ - run-bisect:
+ build_script: 'tcwg_bmk-build.sh'
+ rr_project: 'tcwg_bmk_ci_llvm_cpu2017'
+ job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}'
+ publishers:
+ - bisect-publishers
+# checksum: 092b2636c817e27d652a6992204879e9