aboutsummaryrefslogtreecommitdiff
path: root/tcwg-gcc-bisect.yaml
blob: 75782d075ba27b1dbaafa647340bf3f4c785c0b9 (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
- job:
    name: tcwg-gcc-bisect
    project-type: freestyle
    defaults: global
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            linaro:
                - job-build
                - job-cancel
        - build-discarder:
            days-to-keep: 30
            num-to-keep: 60
    parameters:
        - string:
            name: EXP
            default: ''
            description: '.exp file name (eg. dg.exp)'
        - string:
            name: TESTNAME
            default: ''
            description: 'test name (eg. prXXXXX.c)'
        - string:
            name: TARGET
            default: ''
            description: 'Which target to build'
        - string:
            name: CPU
            default: ''
            description: '--with-cpu GCC configure option'
        - string:
            name: FPU
            default: ''
            description: '--with-fpu GCC configure option'
        - string:
            name: MODE
            default: ''
            description: '--with-mode GCC configure option (arm or thumb)'
        - string:
            name: GOOD
            default: ''
            description: 'Good SVN revision'
        - string:
            name: BAD
            default: ''
            description: 'Bad SVN revision'
        - string:
            name: build_container_tag
            default: 'xenial-tcwg-tested'
            description: 'Distro to use on the builder: trusty, xenial.'
    disabled: false
    node: tcwg-x86_64-cam
    concurrent: true
    display-name: 'TCWG ZZZ GCC Bisect'
    wrappers:
        - timeout:
            timeout: 3000
        - timestamps
        - ssh-agent-credentials:
            # tcwg-buildslave user id
            users:
                - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
        - build-name:
            name: '#${BUILD_NUMBER}-${ENV,var="GOOD"}-${ENV,var="BAD"}-${ENV,var="TARGET"}'
    builders:
        - shell: |
            #!/bin/bash

            set -e
            set -x
            shell="/bin/bash"

            rm -rf jenkins-scripts
            git clone --depth 1 https://git-us.linaro.org/toolchain/jenkins-scripts
            # Configure git user info to make git stash happy. It is
            # used during the second build, because the sources are
            # already present.
            git config --global user.email "tcwg-buildslave@linaro.org"
            git config --global user.name "TCWG BuildSlave"

            # Start build container
            bash -x ./jenkins-scripts/start-container-docker.sh --node $NODE_NAME --distro ${build_container_tag} --prefix build_ > build-container.sh

            # Define build_CONTAINER_RSH and build_container_cleanup
            . ./build-container.sh

            # Make sure to cleanup build container if something goes
            # wrong when preparing the test environment
            trap "cleanup_all_containers" EXIT

            # Jenkins puts the parameters in the environment
            ${build_CONTAINER_RSH} "cd ${WORKSPACE} && EXP=$EXP TESTNAME=$TESTNAME TARGET=$TARGET CPU=$CPU FPU=$FPU MODE=$MODE GOOD=$GOOD BAD=$BAD ${shell} ${WORKSPACE}/jenkins-scripts/abe-bisect.sh"
    publishers:
        - email-ext:
            recipients: 'christophe.lyon@linaro.org'
            aborted: true
            send-to:
              requester
              recipients
            always: true