diff options
author | Laurent Alfonsi <laurent.alfonsi@linaro.org> | 2022-06-17 19:09:42 +0200 |
---|---|---|
committer | Laurent Alfonsi <laurent.alfonsi@linaro.org> | 2022-06-17 19:14:11 +0200 |
commit | 7082ceff9752b4f6eb87f4aa7c7de0159d4b4a2a (patch) | |
tree | 76c5b95a7ab0c69e0b529cd1b6dfa5842fb459ad | |
parent | fa15d4e8e84b9a6ed76dfabcab11641e2b515a4f (diff) | |
download | configs-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.in | 54 | ||||
-rw-r--r-- | tcwg_bmk_ci/tcwg_bmk_ci_gnu.def | 2 | ||||
-rw-r--r-- | tcwg_bmk_ci/tcwg_bmk_ci_gnu_cpu2017.def | 9 | ||||
-rw-r--r-- | tcwg_bmk_ci/tcwg_bmk_ci_gnu_eabi.def | 2 | ||||
-rw-r--r-- | tcwg_bmk_ci/tcwg_bmk_ci_llvm.def | 2 | ||||
-rw-r--r-- | tcwg_bmk_ci/tcwg_bmk_ci_llvm_cpu2017.def | 10 | ||||
-rw-r--r-- | tcwg_bmk_ci_gnu.yaml | 11 | ||||
-rw-r--r-- | tcwg_bmk_ci_gnu_cpu2017.yaml | 604 | ||||
-rw-r--r-- | tcwg_bmk_ci_gnu_eabi.yaml | 10 | ||||
-rw-r--r-- | tcwg_bmk_ci_llvm.yaml | 11 | ||||
-rw-r--r-- | tcwg_bmk_ci_llvm_cpu2017.yaml | 618 |
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 |