aboutsummaryrefslogtreecommitdiff
path: root/tcwg-binutils.yaml
blob: b9465b905bb2ac86ae6ae63a7017d290bb20362a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
- job:
    name: tcwg-binutils
    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: binutils_rev
            default: 'refs/remotes/origin/master'
            description: 'binutils revision to build'
    disabled: false
    node: tcwg-x86_64-ex40
    retry-count: 3
    concurrent: true
    display-name: 'TCWG BBB Binutils'
    scm:
        - git:
            url: https://git-us.linaro.org/toolchain/binutils-gdb.git
            refspec: +refs/heads/master:refs/remotes/origin/master
            branches:
                - ${binutils_rev}
            skip-tag: true
            shallow-clone: false
            reference-repo: /home/tcwg-buildslave/snapshots-ref/binutils-gdb.git
            wipe-workspace: false
    axes:
        - axis:
            type: slave
            name: label
            values:
                - tcwg-x86_64-cam
        - axis:
            type: user-defined
            name: bfd
            values:
                - --enable-64-bit-bfd=no
                - --enable-64-bit-bfd=yes
        - axis:
            type: user-defined
            name: schroot_arch
            values:
                - i386
                - amd64
        - axis:
            type: user-defined
            name: target
            values:
                - aarch64-linux-gnu
                - aarch64-none-elf
                - aarch64_be-none-elf
                - arm-linux-gnueabi
                - arm-linux-gnueabihf
                - arm-netbsdelf
                - arm-none-eabi
                - arm-none-nacl
                - arm-none-symbianelf
                - arm-vxworks
                - arm-wince-pe
                - armeb-linux-gnueabihf
    wrappers:
        - timeout:
            timeout: 600
        - timestamps
        - ssh-agent-credentials:
            # tcwg-buildslave user id
            users:
                - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
        - build-name:
            name: '#${BUILD_NUMBER}-${ENV,var="binutils_rev"}'
    builders:
        - shell: |
            #!/bin/bash

            set -e
            set -x

            schroot_image="tcwg-build-${schroot_arch}-trusty"

            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

            case $target in
                arm-wince-pe)
                    lto=
                    ;;
                *)
                    lto=--enable-lto
                    ;;
            esac

            rm -rf build-$target || true
            mkdir -p build-$target
            cd build-$target
            result=0
            jobs=$(getconf _NPROCESSORS_ONLN)
            echo BUILD STARTED $(date)

            # If configure or build fails, the execution will stop
            # because of 'set -e'. But for 'make check' we want to
            # execute all the tests, and report if there were some
            # errors.
            ${BUILD_SHELL} -c "../configure $lto --enable-plugins --disable-gprof --disable-gdb --disable-sim --disable-libdecnumber --disable-readline --prefix=`pwd`/install --target $target ${bfd}"
            ${BUILD_SHELL} -c "make all -j$jobs"
            ${BUILD_SHELL} -c "make check -j$jobs -k" || result=1
            sums=`find . -name "*.sum"`
            [ x"$sums" != x ] && egrep '^FAIL:|^XPASS:' $sums || true
            [ x"$sums" != x ] && tail $sums

            echo BUILD FINISHED $(date)

            exit $result
    publishers:
        - email:
            recipients: 'christophe.lyon@linaro.org'