aboutsummaryrefslogtreecommitdiff
path: root/robher-aosp-gendev.yaml
blob: 005bfbf1b79988f6785cb9e6611e891919c58282 (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
- 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: LUNCH_TARGET
            values:
                - linaro_arm-userdebug
                - linaro_arm64-userdebug
                - linaro_x86_64-userdebug
                - db410c-userdebug
    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

            if [ ${LUNCH_TARGET} == "db410c-userdebug" ]; then
                BUILD_TARGET="systemimage userdataimage cacheimage ramdisk"
            else
                BUILD_TARGET="systemimage ramdisk"
            fi

            lunch ${LUNCH_TARGET}
            make -k -j"$(nproc)" "${BUILD_TARGET}"

            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
            # Delete sources after build to save space
            rm -rf art/ dalvik/ kernel/ bionic/ developers/ libcore/ sdk/ bootable/ development/ libnativehelper/ system/ build/ device/ test/ build-info/ docs/ packages/ toolchain/ .ccache/ external/ pdk/ tools/ compatibility/ frameworks/ platform_testing/ vendor/ cts/ hardware/ prebuilts/ linaro*

            # 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