aboutsummaryrefslogtreecommitdiff
path: root/tcwg-upstream-monitoring.yaml
blob: 493b78e8b1a7627fca2c7e60759db32fb3a77c20 (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
- job:
    name: tcwg-upstream-monitoring
    project-type: matrix
    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
        - throttle:
            max-total: 2
            option: project
    parameters:
        - string:
            name: override
            default: ''
            description: 'Versions of components to build; e.g. binutils=binutils-gdb.git/linaro_binutils-2_25-branch gcc=gcc.git~linaro/gcc-5-branch glibc=glibc.git~release/2.21/master'
        - string:
            name: native_x86_64_languages
            default: 'c,c++,fortran,lto,objc,obj-c++'
            description: 'Languages to build for x86_64 native toolchains, e.g., "c,c++" or "all" or "default"'
        - string:
            name: native_aarchXX_languages
            default: 'c,c++,fortran,lto,objc,obj-c++'
            description: 'Languages to build for AArchXX native toolchains, e.g., "c,c++" or "all" or "default"'
        - string:
            name: log_server
            default: dev-01.tcwglab:logs
            description: 'Log_Server'
        - string:
            name: ref_build
            default: 'previous'
            description: 'Reference build for comparison, e.g., "lastSuccess" or "previous" or job number'
    disabled: false
    node: tcwg-coordinator
    child-workspace: $branch
    concurrent: true
    display-name: 'TCWG GCC Upstream Monitoring'
    scm:
        - git:
            url: https://git.linaro.org/toolchain/gcc.git
            refspec: +refs/heads/master:refs/remotes/origin/master
            name: origin
            branches:
               - refs/heads/master
            basedir: gcc
            scm-name: GCC
            skip-tag: true
            wipe-workspace: false
            reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git
            clean:
                before: true
    axes:
        - axis:
            type: user-defined
            name: branch
            values:
                - gcc-master
    triggers:
        # Every 8 hours at 00:20, 08:20, 16:20
        - timed: '20 0,8,16 * * *'
    wrappers:
        - timeout:
            timeout: 2400
        - timestamps
        - ssh-agent-credentials:
            # tcwg-buildslave user id
            users:
                - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
    builders:
        - build-name-setter:
            template: '${branch} #${BUILD_NUMBER}'
            macro: true
        - shell: |
            #!/bin/bash

            set -ex

            shopt -s extglob

            case "$branch" in
                all-master)
                    gcc_branch=master
                    config=master ;;
                gcc-master)
                    gcc_branch=master
                    config=latest-rel ;;
                gcc-*-branch)
                    gcc_branch=$branch
                    config=latest-rel ;;
                *) echo "ERROR: Unsupported branch: $branch"; exit 1 ;;
            esac

            for i in gcc; do
                pushd $i
                comp_rev=$(git rev-parse origin/${gcc_branch})
                comp_list="$i=$i.git@$comp_rev $comp_list"
                popd
            done

            svnrev_gcc="$(git -C gcc log -n 1 | grep git-svn-id: | awk '{print $2;}' | cut -d@ -f2)"

            cat <<EOF > buildfarm_parameters
            override=$(echo ${comp_list} --extraconfigdir ../config/$config $override)
            log_name=tcwg-upstream-monitoring/${branch}-$BUILD_NUMBER/@@host@@.\$target
            runtests=tcwg-x86_64-build tcwg-apm_32-build tcwg-apm_64-build
            host_x86_64_excludecheck=gdb
            host_aarchXX_excludecheck=gdb
            host_x86_64_languages=$native_x86_64_languages
            host_aarchXX_languages=$native_aarchXX_languages
            target_list=tcwg-x86_64-build tcwg-apm_32-build tcwg-apm_64-build
            log_server=$log_server
            abe_branch=tested
            scripts_branch=tested
            build_container_tag=lts_1
            displaytag=upstream-monitoring-$branch-gcc-r${svnrev_gcc=}-${BUILD_NUMBER}
            send_results_to=gcc-testresults@gcc.gnu.org
            EOF
        - trigger-builds:
            - project: tcwg-buildfarm
              property-file: buildfarm_parameters
              block: true
              block-thresholds:
                  build-step-failure-threshold: 'never'
                  unstable-threshold: 'never'
                  failure-threshold: 'never'
        - shell: |
            #!/bin/bash

            set -ex

            shopt -s extglob

            case "$ref_build" in
                lastSuccess)   ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastSuccessfulBuild/buildNumber") ;;
                previous)      ref_build_num=$(wget -q --no-check-certificate -O - "${JOB_URL}lastCompletedBuild/buildNumber") ;;
                [1-9]*([0-9])) ref_build_num="$ref_build" ;;
                *) echo "ERROR: Cannot handle ref_build: $ref_build"; exit 1 ;;
            esac

            cat <<EOF > compare_results_parameters
            ref_logs=tcwg-upstream-monitoring/${branch}-$ref_build_num
            new_logs=tcwg-upstream-monitoring/${branch}-$BUILD_NUMBER
            show_results=false
            log_server=$log_server
            EOF
        - trigger-builds:
            - project: tcwg-compare-results
              property-file: compare_results_parameters
              block: true
    publishers:
        - workspace-cleanup:
             include:
              - "*_parameters"
        - email-ext:
            recipients: 'tcwg-validation@linaro.org'
            aborted: true
            matrix-trigger: only-parent