aboutsummaryrefslogtreecommitdiff
path: root/zephyr-upstream.yaml
blob: 39a5a45794d86223f63cec262f278b0c5aeac422 (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
173
174
175
176
177
178
179
180
- job:
    name: zephyr-upstream
    project-type: matrix
    defaults: global
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
                - job-workspace
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
        - build-discarder:
            days-to-keep: 60
            num-to-keep: 60
            artifact-num-to-keep: 60
        - throttle:
            option: category
            categories: [lite-zephyr]
            matrix-builds: false
            matrix-configs: true
    parameters:
        - string:
            name: BRANCH
            default: 'main'
        - string:
            name: LAVA_SERVER
            default: 'validation.linaro.org/RPC2/'
        - string:
            name: QA_SERVER
            default: 'https://qa-reports.linaro.org'
        - string:
            name: GIT_COMMIT
            default: 'HEAD'
        - string:
            name: TWISTER_EXTRA
            default: '--enable-slow -x=BUILD_VERSION=ci_build_version'
    disabled: false
    node: master
    child-workspace: .
    display-name: 'Zephyr project (main)'
# We should avoid starting this job "on its own". That's because default
# Git revision it builds is main/HEAD, and as this is a matrix job,
# different sub-builds may get different actual HEAD revision (e.g. if
# the tree is actively committed to). Instead, it should be triggered
# externally, with GIT_COMMIT parameter set to a specific SHA1 revision
# to build. This is achieved using "trigger-zephyr-upstream" trigger
# job.
#    triggers:
#        - timed: 'H H/12 * * *'
    axes:
        - axis:
            type: slave
            name: label
            values:
                - docker-focal-amd64-lite
        - axis:
            type: user-defined
            name: ZEPHYR_TOOLCHAIN_VARIANT
            values:
                - gnuarmemb
                - zephyr
        - axis:
            type: user-defined
            name: PLATFORM
            values:
                # Jenkins runs these configurations in non-obvious, but
                # mostly stable manner. Configurations are ordered to
                # get frdm_k64f built first, as it's both a "default"
                # test target, and easily contains more tests than other
                # targets (== could make whole job longer if run last).
                - disco_l475_iot1
                - frdm_kw41z
                - lpcxpresso55s69_cpu0
                - mps2_an385
                - nucleo_f103rb
                - frdm_k64f
                - nucleo_f401re
                - qemu_cortex_m3
    execution-strategy:
        combination-filter: |
             ZEPHYR_TOOLCHAIN_VARIANT=="zephyr" || (ZEPHYR_TOOLCHAIN_VARIANT=="gnuarmemb" && !(PLATFORM=="arduino_101" || PLATFORM=="qemu_x86"))
    wrappers:
        - timestamps
        - credentials-binding:
            - text:
                credential-id: LAVA_USER
                variable: LAVA_USER
        - credentials-binding:
            - text:
                credential-id: LAVA_TOKEN
                variable: LAVA_TOKEN
        - credentials-binding:
            - text:
                credential-id: QA_REPORTS_TOKEN
                variable: QA_REPORTS_TOKEN
    builders:
        - shell:
            !include-raw: lite-common/header.sh
        - shell:
            !include-raw: lite-common/install-toolchains.sh
        - shell:
            !include-raw: zephyr-upstream/builders.sh
        - inject:
            properties-file: env_var_parameters
        - build-name-setter:
            template: '#${BUILD_NUMBER}-${GIT_COMMIT_ID}'
            macro: true
        - linaro-publish-token
        - inject:
            properties-file: env_var_parameters
        - shell: |
            #!/bin/bash

            # Publish
            test -d ${HOME}/bin || mkdir ${HOME}/bin
            wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
            time python3 ${HOME}/bin/linaro-cp.py \
              --api_version 3 \
              out/${PLATFORM} components/kernel/zephyr/${BRANCH}/${ZEPHYR_TOOLCHAIN_VARIANT}/${PLATFORM}/${BUILD_NUMBER}
            echo "Build artifacts download URL: https://snapshots.linaro.org/components/kernel/zephyr/${BRANCH}/${ZEPHYR_TOOLCHAIN_VARIANT}/${PLATFORM}/${BUILD_NUMBER}/"

        - shell: |
            #!/bin/bash -ex

            # Remap Zephyr platform/board name to LAVA device type name.
            case "${PLATFORM}" in
              frdm_k64f)
                export DEVICE_TYPE=frdm-k64f
                ;;
              frdm_kw41z)
                export DEVICE_TYPE=frdm-kw41z
                ;;
              disco_l475_iot1)
                #export DEVICE_TYPE=disco-l475-iot1
                echo "disco_l475_iot1: LAVA testing temporarily disabled due to device instability (LSS-2160)"
                ;;
              lpcxpresso55s69_cpu0)
                export DEVICE_TYPE=lpcxpresso55s69
                LAVA_SERVER="staging.validation.linaro.org/RPC2/"
                ;;
              qemu_cortex_m3)
                export DEVICE_TYPE=qemu
                ;;
              *)
                echo "Skipping LAVA testing for ${PLATFORM} (no LAVA device type mapping)"
                ;;
            esac


            # 2021-04-28 - try to submit all (== ~2 builds per day) to LAVA.
            #if [ "${ROOT_BUILD_CAUSE}" = "SCMTRIGGER" ]; then
            #    echo "Skipping LAVA testing for SCM Trigger builds (to not overload LAVA)"
            #    unset DEVICE_TYPE
            #fi

            if [ -n "${DEVICE_TYPE}" ]; then
                rm -rf configs
                git clone --depth 1 --single-branch http://git.linaro.org/ci/job/configs.git

                python3 configs/zephyr-upstream/submit_for_testing.py \
                --board-name ${PLATFORM} \
                --device-type ${DEVICE_TYPE} \
                --build-number ${BUILD_NUMBER} \
                --build-url ${BUILD_URL} \
                --branch-name ${BRANCH} \
                --lava-server ${LAVA_SERVER} \
                --qa-server ${QA_SERVER} \
                --qa-server-team lite \
                --qa-server-project zephyr-upstream \
                --gcc-variant ${ZEPHYR_TOOLCHAIN_VARIANT} \
                --git-commit ${GIT_COMMIT_ID}
            fi

    publishers:
        - email:
            recipients: 'fathi.boudra@linaro.org kumar.gala@linaro.org gpitney@ti.com vincent.wan@linaro.org paul.sokolovsky@linaro.org erwan.gouriou@linaro.org'