aboutsummaryrefslogtreecommitdiff
path: root/tcwg-gcc-idle.yaml
blob: 701a0ce7c78dd85ee5d0e4405fe786da49f71b7e (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
- job:
    name: tcwg-idle-gcc-trunk-build
    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: 30
    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: 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: 'default'
            description: 'Languages to build for AArchXX-hosted toolchains, e.g., "c,c++" or "all" or "default"'
        - string:
            name: log_server
            default: dev-01.tcwglab:logs-bkk16
            description: 'Log_Server'
        - string:
            name: targets
            default: 'cross_main cross_aux'
            description: 'Which target toolchains to build'
        - string:
            name: abe_branch
            default: refs/remotes/origin/bkk16
            description: 'ABE revision to test'
        - string:
            name: ref_build
            default: 'previous'
            description: 'Reference build for comparison, e.g., "lastSuccess" or "previous" or job number or empty string to skip comparison'
    disabled: true
    node: tcwg-x86_64-dev-01
    retry-count: 3
    concurrent: true
    display-name: 'TCWG BKK16 Idle GCC Trunk Build'
    scm:
        - git:
            url: https://git-us.linaro.org/toolchain/gcc.git
            refspec: +refs/heads/master:refs/remotes/origin/master
            name: origin
            branches:
                - refs/heads/master
            skip-tag: true
            wipe-workspace: false
            reference-repo: /home/tcwg-buildslave/snapshots-ref/gcc.git
    triggers:
        - timed: '0 * * * *'
    wrappers:
        - timeout:
            timeout: 600
        - timestamps
        - ssh-agent-credentials:
            # tcwg-buildslave user id
            users:
                - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
    builders:
        - shell: |
            #!/bin/bash

            set -ex

            shopt -s extglob

            i=$(wget -q -O - https://ci.linaro.org/label/tcwg-x86_64-build/api/xml | grep -o "<idleExecutors>.*</idleExecutors>" | grep -o "[0-9]*")
            t=$(wget -q -O - https://ci.linaro.org/label/tcwg-x86_64-build/api/xml | grep -o "<totalExecutors>.*</totalExecutors>" | grep -o "[0-9]*")

            if [ "$i" -gt 0 ] ; then
                gcc_curr_rev=$(git rev-parse HEAD)
                log_prefix="${JOB_NAME}"

                cat << EOF > buildfarm_parameters
            override=glibc=glibc.git~master gcc=gcc.git~$gcc_curr_rev $override
            log_name=${JOB_NAME}-${BUILD_NUMBER}/\$builder_type.\$target
            host_x86_64_languages=${host_x86_64_languages}
            host_aarchXX_languages=${host_aarchXX_languages}
            log_server=${log_server}
            targets=$targets
            abe_branch=${abe_branch}
            runtests=yes
            try_bootstrap=true
            rebuild=false
            dont_fail=true
            run_benchmark=false
            host_x86_64_excludecheck=
            host_aarchXX_excludecheck=
            EOF

                if [ x"${ref_build}" != x ] ; then
                    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

                    # Scrambled indentation because of here-doc
                    cat << EOF > compare_results_parameters
            ref_logs=${log_prefix}-${ref_build_num}
            new_logs=${log_prefix}-${BUILD_NUMBER}
            log_server=${log_server}
            abe_branch=${abe_branch}
            EOF
                fi
            fi
        - trigger-builds:
            - project: tcwg-bkk16-buildfarm
              property-file: buildfarm_parameters
              block: true
        - conditional-step:
            condition-kind: file-exists
            condition-filename: compare_results_parameters
            steps:
                - trigger-builds:
                    - project: tcwg-compare-results
                      property-file: compare_results_parameters
                      block: true
    publishers:
        - workspace-cleanup:
             include:
              - "*_parameters"
        - email:
             recipients: 'christophe.lyon@linaro.org'