diff options
author | Laurent Alfonsi <laurent.alfonsi@linaro.org> | 2022-06-17 18:59:25 +0200 |
---|---|---|
committer | Laurent Alfonsi <laurent.alfonsi@linaro.org> | 2022-06-17 18:59:25 +0200 |
commit | 233e844be638657e9a81837bcca1626bfd1b9224 (patch) | |
tree | 1c9d3b1727d869f3a36b4443798eb62ac64e050d /tcwg_bmk_ci_llvm_cpu2017.yaml | |
parent | 43fb16ae6b2c89a9382b523218dcd72f6e1bff5b (diff) |
tcwg_bmk_ci*: too many jobs for fx700, sq. Will overload them
Change-Id: I38bf6e8e3e0df09f34de6e08e96edbbfacbdc26b
Diffstat (limited to 'tcwg_bmk_ci_llvm_cpu2017.yaml')
-rw-r--r-- | tcwg_bmk_ci_llvm_cpu2017.yaml | 643 |
1 files changed, 643 insertions, 0 deletions
diff --git a/tcwg_bmk_ci_llvm_cpu2017.yaml b/tcwg_bmk_ci_llvm_cpu2017.yaml new file mode 100644 index 0000000000..db4395a43f --- /dev/null +++ b/tcwg_bmk_ci_llvm_cpu2017.yaml @@ -0,0 +1,643 @@ +# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk_ci.yaml.in and tcwg_bmk_ci/tcwg_bmk_ci_llvm.def. Do not edit. +# Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/' +- project: + name: tcwg_bmk_ci_llvm + 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 + - apm: + target: arm + - apm: + target: aarch64 + - tk1: + target: arm + - tx1: + 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-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 + 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_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-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-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}' + - 'tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}' + +- job-group: + name: tcwg_bmk_ci_llvm-release + toolchain_ver: release + binutils_branch: refs/heads/binutils-2_38-branch + gcc_branch: refs/heads/releases/gcc-12 + glibc_branch: refs/heads/release/2.35/master + llvm_branch: refs/heads/release/14.x + distro: lts_1 + cron_schedule: 'H H H/6 * *' + jobs: + - 'tcwg_bmk_ci_llvm-build-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}' + - 'tcwg_bmk_ci_llvm-bisect-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}' + +- view: + name: tcwg_bmk_ci_llvm + view-type: list + regex: 'tcwg_bmk_ci_llvm-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-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-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: true + node: tcwg-x86_64-build_bmk + concurrent: false + display-name: 'DELETE ME' + 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' + job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}' + publishers: + - build-publishers + +- job-template: + name: tcwg_bmk_ci_llvm-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-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: true + node: tcwg-x86_64-build_bmk + concurrent: false + display-name: 'DELETE ME' + 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' + job_suffix: '-tcwg_bmk_{hw}-llvm-{toolchain_ver}-{target}-{bmk}-{cflags}' + publishers: + - bisect-publishers +# checksum: 31e845efc5b6ed9b1fda906012195b2b |