aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2015-08-18 14:50:11 +0200
committerChristophe Lyon <christophe.lyon@linaro.org>2015-08-18 14:50:11 +0200
commit9ad536a9009f326d3288b8d1d7741257157491a6 (patch)
treee2d97e780fddb09faedacaf7d470cf704e23e722
parent6fecd9b6626224948da6eb36f309ce78e83d626b (diff)
tcwg-buildfarm-master-cambridge-01: New buildfarm job, building on Cambridge slave 01 only.
Change-Id: Ib97453636fcd25195953bc5e21742aa6d3365b20
-rw-r--r--tcwg-buildfarm-master-cambridge-01.yaml166
1 files changed, 166 insertions, 0 deletions
diff --git a/tcwg-buildfarm-master-cambridge-01.yaml b/tcwg-buildfarm-master-cambridge-01.yaml
new file mode 100644
index 0000000000..28245ce009
--- /dev/null
+++ b/tcwg-buildfarm-master-cambridge-01.yaml
@@ -0,0 +1,166 @@
+- job:
+ name: tcwg-buildfarm-master-cambridge-01
+ project-type: matrix
+ defaults: global
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 30
+ properties:
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ linaro:
+ - job-build
+ - job-cancel
+ parameters:
+ - string:
+ name: gcc_branch
+ default: 'latest'
+ description: 'GCC revision to build'
+ - string:
+ name: target
+ default: 'aarch64-none-elf'
+ description: 'Target to build'
+ - string:
+ name: host_x86_64_languages
+ default: 'default'
+ description: 'Languages to build for x86_64-hosted toolchains, e.g., "c,c++" or "all" or "default"'
+ - string:
+ name: host_aarchXX_languages
+ default: 'c,c++'
+ description: 'Languages to build for AArchXX-hosted toolchains, e.g., "c,c++" or "all" or "default"'
+ - string:
+ name: runtests
+ default: 'x86_64-host'
+ description: 'Run toolchain testsuites: "yes", "no", "x86_64-host"'
+ - bool:
+ name: try_bootstrap
+ default: 'true'
+ description: 'Attempt to bootstrap GCC for compatible host and target combinations'
+ - string:
+ name: excludecheck
+ default: 'gdb'
+ description: 'Do not run "make check" on this component'
+ - bool:
+ name: rebuild
+ default: true
+ description: 'Rebuild the toolchain even if results are already on logserver'
+ - string:
+ name: log_name
+ default: ''
+ description: 'Logname directory on logserver; leave empty for default'
+ - bool:
+ name: dont_fail
+ default: false
+ description: 'Do not fail the build'
+ - string:
+ name: log_server
+ default: ex40-01.tcwglab.linaro.org:logs-master
+ description: 'Log_Server'
+ - string:
+ name: abe_branch
+ default: refs/heads/master
+ description: 'ABE revision to test'
+ disabled: false
+ node: tcwg-x86_64-build
+ concurrent: true
+ display-name: 'TCWG BuildFarm master on Cambridge 01'
+ scm:
+ - git:
+ url: https://git.linaro.org/toolchain/abe.git
+ refspec: +refs/changes/*:refs/remotes/changes/*
+ branches:
+ - ${abe_branch}
+ skip-tag: true
+ shallow-clone: true
+ wipe-workspace: true
+ axes:
+ - axis:
+ type: slave
+ name: label
+ values:
+ - tcwg-x86_64-build-01
+ wrappers:
+ - timeout:
+ timeout: 600
+ - timestamps
+ - ssh-agent-credentials:
+ # tcwg-buildslave user id
+ user: 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
+ - build-name:
+ name: '#${BUILD_NUMBER}-${ENV,var="gcc_branch"}'
+ - matrix-tie-parent:
+ node: tcwg-x86_64
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ set -e
+ set -x
+
+ case ${target} in
+ schroot-*)
+ schroot_arch=$(echo ${target} | sed -e "s/^schroot-\([^-]*\)-\(.*\)/\1/")
+ target=$(echo ${target} | sed -e "s/^schroot-\([^-]*\)-\(.*\)/\2/")
+ ;;
+ *)
+ case $(uname -m) in
+ x86_64) schroot_arch="amd64" ;;
+ aarch64) schroot_arch="arm64" ;;
+ *) echo "Unexpected architecture $(uname -m)"; exit 1 ;;
+ esac
+ ;;
+ esac
+ schroot_image="tcwg-build-${schroot_arch}-trusty"
+
+ case $(uname -m) in
+ x86_64) languages="$host_x86_64_languages" ;;
+ *) languages="$host_aarchXX_languages" ;;
+ esac
+
+ case "$runtests-$(uname -m)" in
+ "yes"-*) runtests_opt="--runtests" ;;
+ "x86_64-host"-x86_64) runtests_opt="--runtests" ;;
+ *) runtests_opt="" ;;
+ esac
+
+ if $try_bootstrap; then
+ bootstrap="--bootstrap"
+ else
+ bootstrap=""
+ fi
+
+ if [ x"$log_name" != x"" ]; then
+ eval "logname_opt=\"--logname $log_name\""
+ fi
+
+ if $rebuild; then
+ norebuild=""
+ else
+ norebuild="--norebuild"
+ fi
+
+ # Calculate session's RAM size to be used in ulimit.
+ # This limit is per-process, so, effectively, they have 2-4GB.
+ session_ram="$(free | grep "Mem:" | sed -e "s/Mem: *\([0-9]*\).*/\1/")"
+ session_ram="$(($session_ram / 8))"
+ ulimit -u 5000
+ ulimit -d $session_ram
+ ulimit -v $session_ram
+
+ session_id=$(schroot -b -c chroot:$schroot_image --preserve-environment)
+ BUILD_SHELL="schroot -r -c session:$session_id --preserve-environment -- bash"
+ $BUILD_SHELL -c "echo \"Build session is up; ulimit config:\"; ulimit -a"
+
+ # Sometimes /dev/pts can't get unmounted on the first try.
+ # Workaround by retrying.
+ trap "schroot -f -e -c session:$session_id || sleep 60 || schroot -f -e -c session:$session_id" 0 1 2 3 5 9 13 15
+
+ ${BUILD_SHELL} -x ./jenkins.sh --target ${target} --gcc-branch ${gcc_branch} --languages ${languages} $bootstrap $runtests_opt --excludecheck ${excludecheck} --fileserver ex40-01.tcwglab.linaro.org/snapshots-ref --logserver $log_server $logname_opt $norebuild || result="$?"
+
+ echo "Result of jenkins.sh: $result"
+ if $dont_fail; then
+ result="0"
+ fi
+ exit $result