aboutsummaryrefslogtreecommitdiff
path: root/robher-aosp-gendev.yaml
blob: adfa3ee0fdf652b2213c56eb54d76dc12fa43f26 (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
- job:
    name: robher-aosp-gendev
    project-type: matrix
    defaults: global
    properties:
        - authorization:
            anonymous:
                - job-read
            vishal.bhoj@linaro.org:
                - job-build
                - job-read
                - job-extended-read
                - job-configure
                - job-cancel
            rob.herring@linaro.org:
                - job-build
                - job-read
                - job-extended-read
                - job-configure
                - job-cancel
        - build-discarder:
            days-to-keep: 60
            num-to-keep: 60
    disabled: false
    display-name: 'AOSP Generic Device build by Rob Herring'
    triggers:
        - timed: 'H H * * *'
    axes:
        - axis:
            type: slave
            name: label
            values:
                - docker-xenial-aosp
        - axis:
            type: user-defined
            name: ARCH
            values:
                - arm
                - arm64
                - arm64_only
                - x86_64
    execution-strategy:
        sequential: true
    wrappers:
        - timestamps
        - timeout:
            timeout: 500
    builders:
        - shell:
            !include-raw: android-lcr/common/builders.sh
        - shell: |
            #!/bin/bash

            set -ex

            # Clean any artifacts related to previous build
            rm -rf out/target/product/*/system/ out/target/product/*/data/ out/target/product/*/*.xml out/target/product/*/obj/kernel/
            rm -rf out/target/product/*/*.zip out/target/product/*/*.img out/target/product/*/*.xz

            # Runs as ubuntu
            repo init -u https://android.googlesource.com/platform/manifest -b master
            cd .repo
            rm -rf local_manifests
            git clone https://github.com/robherring/android_manifest -b master local_manifests
            cd ..
            repo sync -f --force-sync -j16

            source build/envsetup.sh

            LUNCH_TARGET="linaro_${ARCH}-userdebug"
            lunch ${LUNCH_TARGET}
            make -k -j8 systemimage ramdisk

            cp .repo/manifest.xml out/source-manifest.xml
            repo manifest -r -o ${ANDROID_PRODUCT_OUT}/pinned-manifest.xml

            # Un-sparse the image
            mv ${ANDROID_PRODUCT_OUT}/system.img ${ANDROID_PRODUCT_OUT}/system.simg
            simg2img ${ANDROID_PRODUCT_OUT}/system.simg ${ANDROID_PRODUCT_OUT}/system.img
            rm ${ANDROID_PRODUCT_OUT}/system.simg

            # Publish binaries
            wget https://git.linaro.org/ci/job/configs.git/blob_plain/HEAD:/android-lcr/generic/build-info/public-template.txt -O ${ANDROID_PRODUCT_OUT}/BUILD-INFO.txt

            # Publish parameters
            cat << EOF > ${WORKSPACE}/publish_parameters
            PUB_DEST=/android/robher-aosp-gendev/${BUILD_NUMBER}/${LUNCH_TARGET}
            PUB_SRC=${ANDROID_PRODUCT_OUT}
            EOF
        - inject:
            properties-file: publish_parameters
        - linaro-publish-token
        - shell:
            !include-raw:
                - android/linaro-publisher.sh
    publishers:
        - logparser:
            parse-rules: '/var/lib/jenkins/userContent/android.parse'
            unstable-on-warning: false
            fail-on-error: false
        - email:
            recipients: 'rob.herring@linaro.org'
        - email-ext:
            recipients: 'rob.herring@linaro.org'
            content-type: text
            subject: 'errors for mesa master Android build ${BUILD_NUMBER}'
            body: |
                Build URL: ${PROJECT_URL}${BUILD_NUMBER}/
                Full log: ${PROJECT_URL}${BUILD_NUMBER}/consoleText
                Parsed warnings/errors: ${PROJECT_URL}${BUILD_NUMBER}/parsed_console

                ERRORS:
                ${BUILD_LOG_REGEX, regex="^.*? error: .*?$", linesBefore=0, linesAfter=2, showTruncatedLines=false}
            unstable: true