aboutsummaryrefslogtreecommitdiff
path: root/tcwg-regression-detection.yaml
blob: 2fe01eb3c33878a13cc5f240bb272945334b2b8f (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
- job:
    name: tcwg-regression-detection
    project-type: multijob
    defaults: global
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            linaro:
                - job-build
                - job-cancel
        - build-discarder:
            days-to-keep: 30
            num-to-keep: 30
    parameters:
        - string:
            name: abe_test_list
            default: 'abe-tests-checkout'
            description: 'List of ABE tests to perform'
        - string:
            name: release_target_list
            default: 'arm-linux-gnueabihf'
            description: 'List of release targets to use'
        - string:
            name: ref_abe_rev
            default: ''
            description: 'Reference ABE revision to use. Empty (default) means previous revision'
    disabled: false
    node: tcwg-coordinator
    retry-count: 3
    concurrent: true
    display-name: 'TCWG Regression Detection'
    scm:
        - git:
            url: https://git-us.linaro.org/toolchain/abe.git
            refspec: +refs/heads/master:refs/remotes/origin/master
            branches:
                - refs/heads/master
            wipe-workspace: false
            scm-name: abe
            skip-tag: true
        - git:
            url: https://git-us.linaro.org/toolchain/abe-tests.git
            basedir: abe-tests
            branches:
                - refs/heads/master
            wipe-workspace: false
            scm-name: abe-tests
            skip-tag: true
        - git:
            url: https://git-us.linaro.org/toolchain/gcc-compare-results.git
            basedir: gcc-compare-results
            branches:
                - refs/heads/master
            wipe-workspace: false
            scm-name: gcc-compare-results
            skip-tag: true
        - git:
            url: https://git-us.linaro.org/toolchain/jenkins-scripts.git
            basedir: jenkins-scripts
            branches:
                - refs/heads/master
            wipe-workspace: false
            scm-name: jenkins-scripts
            skip-tag: true
    triggers:
        - gerrit:
            server-name: 'review.linaro.org'
            trigger-on:
                - change-merged-event
            projects:
                - project-compare-type: 'PLAIN'
                  project-pattern: 'toolchain/jenkins-scripts'
                  branches:
                    - branch-pattern: 'master'
                  forbidden-file-paths:
                    - compare-type: REG_EXP
                      pattern: tcwg-llvm-*
                    - compare-type: PLAIN
                      pattern: tcwg-benchmark.sh
                - project-compare-type: 'PLAIN'
                  project-pattern: 'toolchain/abe'
                  branches:
                    - branch-pattern: 'master'
                - project-compare-type: 'PLAIN'
                  project-pattern: 'toolchain/abe-tests'
                  branches:
                    - branch-pattern: 'master'
                - project-compare-type: 'PLAIN'
                  project-pattern: 'toolchain/gcc-compare-results'
                  branches:
                    - branch-pattern: 'master'
    wrappers:
        - timeout:
            timeout: 600
        - timestamps
        - ssh-agent-credentials:
            # tcwg-buildslave user id
            users:
                - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
        - build-name:
            name: '#${BUILD_NUMBER}'
    builders:
        - shell: |
            #!/bin/bash

            mkdir -p artifacts/

            # Abe's revisions to test
            # TODO: gather reference from previous build instead of using N-1.
            cur_abe_rev=$(git rev-parse HEAD)
            if [ "x$ref_abe_rev" = "x" ]; then
              ref_abe_rev=$(git rev-parse HEAD~)
            fi

            echo "abe_revision=$cur_abe_rev" > artifacts/infos.txt

            cat << EOF > buildfarm_cmp_parameters
            ref_override=--extraconfigdir ../config/gcc7 gcc=gcc.git~linaro/gcc-7-branch
            eval_override=--extraconfigdir ../config/gcc7 gcc=gcc.git~linaro/gcc-7-branch
            ref_abe_branch=$ref_abe_rev
            eval_abe_branch=$cur_abe_rev
            target_list=aarch64-linux-gnu armv8l-linux-gnueabihf arm-linux-gnueabi arm-linux-gnueabihf
            displaytag=reg-detection-${BUILD_NUMBER}
            EOF

            echo "NOTE: Buildfarm cmp job parameters:"
            cat buildfarm_cmp_parameters

            # TODO: Change fileserver and/or location to avoid mixing "real"
            # releases and regression detection builds.
            # testrelease=false means that tcwg-make-release should
            # not spawn tcwg-test-release itself. This is taken care
            # of by tcwg-make-and-test-release.
            # keep 6.2-2016.11 regtest tag until we make one for 7.1
            cat << EOF > make_release_parameters
            gcc_src=http://releases.linaro.org/components/toolchain/gcc-linaro/7.2-2017.11/gcc-linaro-7.2-2017.11.tar.xz
            release_name=2017.05-regtest-${BUILD_NUMBER}
            toolchain_config=gcc7
            abe_branch=$cur_abe_rev
            fileserver=dev-01.tcwglab
            target_list=$release_target_list
            testrelease=false
            tcwg_regression_rev=ok-for-regtest-with-gcc-linaro-7.2-2017.11
            EOF

            echo "NOTE: Make-release job parameters:"
            cat make_release_parameters
        - multijob:
            name: 'Check Manifest'
            condition: ALWAYS
            projects:
              - name: tcwg-abe-test
                predefined-parameters: |
                  test_list=$abe_test_list
        - multijob:
            name: 'Check build/testsuite and releases'
            condition: COMPLETED
            projects:
              - name: tcwg-buildfarm-cmp
                property-file: buildfarm_cmp_parameters
              - name: tcwg-make-and-test-release
                property-file: make_release_parameters
                predefined-parameters: |
                  target_list='arm-linux-gnueabihf'
    publishers:
        - archive:
            artifacts: 'artifacts/*'
            latest-only: false
        - email:
            recipients: 'yvan.roux@linaro.org tcwg-validation@linaro.org'