diff options
Diffstat (limited to 'tcwg_gnu.yaml.in')
-rw-r--r-- | tcwg_gnu.yaml.in | 373 |
1 files changed, 254 insertions, 119 deletions
diff --git a/tcwg_gnu.yaml.in b/tcwg_gnu.yaml.in index 61fcecac0c..b5b39d9078 100644 --- a/tcwg_gnu.yaml.in +++ b/tcwg_gnu.yaml.in @@ -1,130 +1,220 @@ # Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/' - project: name: #{RR} - toolchain_name: gnu -#if RR_tcwg_gcc || RR_tcwg_binutils - ci_project: tcwg_gnu + type_of_test: "" + timeout_build: 1000 +#if PRECOMMIT_TRIGGER_yes + # Trigger configuration that have precommit testing every 6 hours + # to test incoming patches in a timely manner. + cron_master: 'H H/6 * * *' +#elif RR_tcwg_gnu_embed + # We have 9 ci_configs for tcwg_gnu_embed_* projects, so trigger these + # once in 3 days. + cron_master: 'H H H/3 * *' #else - ci_project: #{RR} + # By default, run each CI loop daily. + cron_master: 'H H * * *' +#endif + docker_security: '' +#if RR_tcwg_gcc + ci_project: + - tcwg_gcc_build + - tcwg_gcc_check +#elif RR_tcwg_bootstrap +# We put tcwg_bootstrap_* jobs separately from tcwg_gcc_* jobs to avoid +# slowing down [quick] tcwg_gcc_* when bisecting bootstrap regressions. +# If a bootstrap job catches a regression first, it will block bisects +# of all configurations in the same ci_project. This would prevent +# tcwg_gcc_* jobs from bisecting same regression much quicker. + ci_project: + - tcwg_bootstrap_build: + type_of_test: -bootstrap + - tcwg_bootstrap_build: + type_of_test: -bootstrap_lto + - tcwg_bootstrap_build: + type_of_test: -bootstrap_O1 + - tcwg_bootstrap_build: + type_of_test: -bootstrap_O3 + - tcwg_bootstrap_build: + type_of_test: -bootstrap_debug + - tcwg_bootstrap_build: + type_of_test: -bootstrap_profiled + - tcwg_bootstrap_build: + type_of_test: -bootstrap_profiled_lto + - tcwg_bootstrap_build: + type_of_test: -bootstrap_profiled_lto_lean + - tcwg_bootstrap_build: + type_of_test: -bootstrap_ubsan + - tcwg_bootstrap_check: + type_of_test: -check_bootstrap + - tcwg_bootstrap_check: + type_of_test: -check_bootstrap_lto +#elif RR_tcwg_binutils + ci_project: + - tcwg_binutils_build + - tcwg_binutils_check +#elif RR_tcwg_glibc + ci_project: + - tcwg_glibc_build + - tcwg_glibc_check: + # The SYS_ADMIN is required to allow the glibc container tests use mount, chroot, and ptrace syscalls. + # Also, docker default apprmor filter disables the mount sycall, so disable it as well. + # See https://linaro.atlassian.net/browse/GNU-836 for more details. + docker_security: '--cap-add=SYS_ADMIN --security-opt apparmor=unconfined' +#elif RR_tcwg_gdb + ci_project: + - tcwg_gdb_build + - tcwg_gdb_check: + timeout_build: 2000 +#elif RR_tcwg_gnu_cross + ci_project: + - tcwg_gnu_cross_build + - tcwg_gnu_cross_check_binutils + - tcwg_gnu_cross_check_gcc +#elif RR_tcwg_gnu_embed + ci_project: + - tcwg_gnu_embed_build + - tcwg_gnu_embed_check_binutils + - tcwg_gnu_embed_check_gcc +#elif RR_tcwg_gnu_mingw + ci_project: + - tcwg_gnu_mingw_build + - tcwg_gnu_mingw_check_binutils + - tcwg_gnu_mingw_check_gcc +#elif RR_tcwg_gnu_native + ci_project: + - tcwg_gnu_native_build + - tcwg_gnu_native_check_binutils + - tcwg_gnu_native_check_gcc + - tcwg_gnu_native_check_glibc: + # See tcwg_glibc_check above. + docker_security: '--cap-add=SYS_ADMIN --security-opt apparmor=unconfined' + - tcwg_gnu_native_check_gdb: + timeout_build: 2000 + - tcwg_gnu_native_fast_check_gcc + - tcwg_gnu_native_fast_check_gdb #endif #if COMPONENTS_binutils binutils_url: git://sourceware.org/git/binutils-gdb.git #endif #if COMPONENTS_gcc +# if RR_tcwg_gnu_mingw + gcc_url: https://github.com/Windows-on-ARM-Experiments/gcc-woarm64.git +# else gcc_url: https://github.com/gcc-mirror/gcc.git +# endif #endif #if COMPONENTS_glibc glibc_url: git://sourceware.org/git/glibc.git #endif -#if COMPONENTS_qemu - qemu_url: https://git.qemu.org/git/qemu.git -#endif - toolchain_ver: - - master: -#if COMPONENTS_binutils - binutils_branch: refs/heads/master -#endif -#if COMPONENTS_gcc - gcc_branch: refs/heads/master -#endif -#if COMPONENTS_glibc - glibc_branch: refs/heads/master -#endif -#if COMPONENTS_qemu - qemu_branch: refs/heads/master -#endif - distro: lts - - release: -#if COMPONENTS_binutils - binutils_branch: refs/heads/binutils-2_36-branch +#if COMPONENTS_gdb + gdb_url: git://sourceware.org/git/binutils-gdb.git #endif -#if COMPONENTS_gcc - gcc_branch: refs/heads/releases/gcc-10 +#if COMPONENTS_mingw + mingw_url: https://git.code.sf.net/p/mingw-w64/mingw-w64.git #endif -#if COMPONENTS_glibc - glibc_branch: refs/heads/release/2.32/master +#if COMPONENTS_newlib + newlib_url: git://sourceware.org/git/newlib-cygwin.git #endif #if COMPONENTS_qemu - qemu_branch: refs/tags/v5.2.0 + qemu_url: https://gitlab.com/qemu-project/qemu.git #endif - distro: lts_1 target: -#if RR_tcwg_cross +#if RR_tcwg_gnu_cross || RR_tcwg_gnu_embed +# if RR_tcwg_gnu_cross - aarch64 - arm - node: tcwg-x86_64-build +# elif RR_tcwg_gnu_embed + - arm_eabi + - arm_v7a_softfp_eabi + - thumb_v8a_hard_eabi + - thumb_m0_eabi + - thumb_m0_soft_eabi + - thumb_m3_eabi + - thumb_m3_softfp_eabi + - thumb_m7_eabi + - thumb_m7_hard_eabi + - thumb_m23_eabi + - thumb_m23_soft_eabi + - thumb_m33_eabi + - thumb_m33_hard_eabi + - thumb_m55_hard_eabi +# endif + node: tcwg-build && tcwg-x86_64 +#elif RR_tcwg_gnu_mingw + - woa64: + node: tcwg-wsl #else - aarch64: - node: tcwg-armv8_64 + node: tcwg-build && tcwg-armv8_64 docker_arch: arm64 - arm: - node: tcwg-armv8_32 + node: tcwg-build && tcwg-armv8_32 docker_arch: armhf #endif - disabled: false - type_of_test: -#if RR_tcwg_binutils - - check_binutils -#elif RR_tcwg_cross - - build_cross - - check_cross: - disabled: true -#elif RR_tcwg_gcc - - bootstrap_O1 - - bootstrap_O3 - - bootstrap_debug - - bootstrap_profiled - - bootstrap_profiled_lto - - bootstrap_profiled_lto_lean - - bootstrap_ubsan - - check_bootstrap: - disabled: true - - check_bootstrap_lto: - disabled: true -#endif jobs: - - '#{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' - - '#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' + - #{RR}-master -- view: - name: #{RR} - view-type: list - regex: '#{RR}-.*' +- job-group: + name: #{RR}-master + toolchain_ver: master + cron: '{cron_master}' +#if COMPONENTS_binutils + binutils_branch: refs/heads/master +#endif +#if COMPONENTS_gcc +# if RR_tcwg_gnu_mingw + gcc_branch: refs/heads/aarch64-mingw32-baseline +# else + gcc_branch: refs/heads/master +# endif +#endif +#if COMPONENTS_linux + linux_url: https://git.linaro.org/kernel-org/linux.git + linux_branch: refs/heads/master +#endif +#if COMPONENTS_glibc + glibc_branch: refs/heads/master +#endif +#if COMPONENTS_gdb + gdb_branch: refs/heads/master +#endif +#if COMPONENTS_mingw + mingw_branch: refs/heads/master +#endif +#if COMPONENTS_newlib + newlib_branch: refs/heads/master +#endif +#if COMPONENTS_qemu + qemu_branch: refs/heads/master +#endif + distro: default + jobs: + - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build' +#if PRECOMMIT_ENABLE_yes + - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit' +#endif + - '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect' + ci_config: '{toolchain_ver}-{target}{type_of_test}' #include tcwg/round-robin.yaml.inc - job-template: - name: #{RR}-build-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test} + name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-build' project-type: freestyle defaults: global properties: - - default-properties - - build-blocker: - blocking-jobs: - - "#{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}" - queue-scanning: 'ALL' + - build-properties: + ci_project: '{ci_project}' + ci_config: '{ci_config}' parameters: - build-parameters: - ci_project: '{ci_project}' - ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' -#if COMPONENTS_binutils - binutils_url: '{binutils_url}' -#endif -#if COMPONENTS_gcc - gcc_url: '{gcc_url}' -#endif -#if COMPONENTS_glibc - glibc_url: '{glibc_url}' -#endif -#if COMPONENTS_qemu - qemu_url: '{qemu_url}' -#endif - default_branch: 'default' + default_git: 'default' distro: '{distro}' - disabled: '{disabled}' - node: '{node} && tcwg-build' + disabled: false + node: '{node}' concurrent: false - display-name: 'TCWG Build {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' + display-name: 'TCWG Build {ci_project}/{ci_config}' workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER scm: - build-scms: @@ -136,63 +226,107 @@ gcc_url: '{gcc_url}' gcc_branch: '{gcc_branch}' #endif +#if COMPONENTS_linux + linux_url: '{linux_url}' + linux_branch: '{linux_branch}' +#endif #if COMPONENTS_glibc glibc_url: '{glibc_url}' glibc_branch: '{glibc_branch}' #endif +#if COMPONENTS_gdb + gdb_url: '{gdb_url}' + gdb_branch: '{gdb_branch}' +#endif +#if COMPONENTS_mingw + mingw_url: '{mingw_url}' + mingw_branch: '{mingw_branch}' +#endif +#if COMPONENTS_newlib + newlib_url: '{newlib_url}' + newlib_branch: '{newlib_branch}' +#endif #if COMPONENTS_qemu qemu_url: '{qemu_url}' qemu_branch: '{qemu_branch}' #endif triggers: +#if PRECOMMIT_TRIGGER_yes + - timed: '{cron}' +#else - pollscm: - cron: 'H H H/2 * *' + cron: '{cron}' +#endif wrappers: - build-wrappers: - timeout: 1000 + timeout: '{timeout_build}' builders: - run-build: + ci_project: '{ci_project}' + ci_config: '{ci_config}' build_script: 'tcwg_gnu-build.sh' - components: '#{COMPONENTS}' - rr_project: '#{RR}' - ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' -#if RR_tcwg_binutils || RR_tcwg_gcc +#if RR_tcwg_gnu_native || RR_tcwg_gcc || RR_tcwg_bootstrap || RR_tcwg_binutils || RR_tcwg_glibc || RR_tcwg_gdb docker_arch: '{docker_arch}' #endif - target: '{target}' - type_of_test: '{type_of_test}' + docker_security: '{docker_security}' publishers: - - build-publishers - - email-ext: - recipients: 'tcwg-gcc@linaro.org' - aborted: true - failure: false - success: false + - build-publishers: + email_on_failure: false + email_on_success: true +#if PRECOMMIT_ENABLE_yes - job-template: - name: #{RR}-bisect-{toolchain_name}-{toolchain_ver}-{target}-{type_of_test} + name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-precommit' 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: - - "#{RR}-bisect-.*" - queue-scanning: 'BUILDABLE' + - precommit-properties: + ci_project: '{ci_project}' + ci_config: '{ci_config}' parameters: - - bisect-parameters: + - precommit-parameters: + default_git: 'baseline' + distro: '{distro}' + disabled: false + node: '{node}' + concurrent: true + display-name: 'TCWG Precommit {ci_project}/{ci_config}' + workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER + scm: + - jenkins-scripts + wrappers: + - build-wrappers: + timeout: 300 + builders: + - run-precommit: ci_project: '{ci_project}' - ci_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' + ci_config: '{ci_config}' + build_script: 'tcwg_gnu-build.sh' +#if RR_tcwg_gnu_native || RR_tcwg_gcc || RR_tcwg_bootstrap || RR_tcwg_binutils || RR_tcwg_glibc || RR_tcwg_gdb + docker_arch: '{docker_arch}' +#endif + docker_security: '{docker_security}' + publishers: + - build-publishers: + email_on_failure: true + email_on_success: false +#endif + +- job-template: + name: '{ci_project}--{toolchain_ver}-{target}{type_of_test}-bisect' + project-type: freestyle + defaults: global + properties: + - bisect-properties: + ci_project: '{ci_project}' + ci_config: '{ci_config}' + parameters: + - bisect-parameters: distro: '{distro}' - disabled: '{disabled}' - node: '{node} && tcwg-bisect' + disabled: false + node: '{node}' concurrent: false - display-name: 'TCWG Bisect {ci_project}/{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' + display-name: 'TCWG Bisect {ci_project}/{ci_config}' workspace: workspace/tcwg_gnu_$EXECUTOR_NUMBER scm: - jenkins-scripts @@ -201,11 +335,12 @@ timeout: 6000 builders: - run-bisect: + ci_project: '{ci_project}' + ci_config: '{ci_config}' build_script: 'tcwg_gnu-build.sh' - rr_project: '#{RR}' - ci_project_config: '{toolchain_name}-{toolchain_ver}-{target}-{type_of_test}' -#if RR_tcwg_binutils || RR_tcwg_gcc +#if RR_tcwg_gnu_native || RR_tcwg_gcc || RR_tcwg_bootstrap || RR_tcwg_binutils || RR_tcwg_glibc || RR_tcwg_gdb docker_arch: '{docker_arch}' #endif + docker_security: '{docker_security}' publishers: - bisect-publishers |