aboutsummaryrefslogtreecommitdiff
path: root/robher-aosp.yaml
blob: bb3e8efad69b6383e2f87fe2ba642049fe73745c (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
- job:
    name: robher-aosp
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 60
        numToKeep: 60
    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
    scm:
        - git:
            url: git://anongit.freedesktop.org/mesa/mesa
            branches:
                - origin/master
                - origin/android/*
            skip-tag: true
            shallow-clone: true
            wipe-workspace: false
            basedir: /home/buildslave/srv/${JOB_NAME}/external/mesa3d
    parameters:
        - string:
            name: MESA_GIT_TREE
            default:
        - string:
            name: MESA_EMAIL_RECIPIENTS
            default:
    disabled: false
    node: docker-xenial-aosp
    display-name: 'AOSP build playground for Rob Herring'
    concurrent: true
    wrappers:
        - timestamps
        - timeout:
            timeout: 500
    builders:
        - linaro-publish-token:
            host: snapshots.linaro.org
        - shell:
            !include-raw: android-lcr/common/builders.sh
        - shell: |
            cd /home/buildslave/srv/${JOB_NAME}/external/mesa3d
            echo "CI_MAIL_RECIPIENTS=$(git --no-pager log -1 --pretty='%cE,%aE')" > ${WORKSPACE}/env_var_parameters
        - inject:
            properties-file: env_var_parameters
        - shell: |
            #!/bin/bash

            set -ex

            if [ ! -d "/home/buildslave/srv/${JOB_NAME}" ]; then
              sudo mkdir -p /home/buildslave/srv/${JOB_NAME}
              sudo chmod 777 /home/buildslave/srv/${JOB_NAME}
            fi

            cd /home/buildslave/srv/${JOB_NAME}

            # 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 mesa-master-test local_manifests
            cd ..
            repo sync -q -f --force-sync -j"$(nproc)"

            mkdir -p out
            cp .repo/manifest.xml out/source-manifest.xml
            repo manifest -r -o out/pinned-manifest.xml

            cd external/mesa3d

            if [ -n "${MESA_GIT_TREE}" ]; then
                git fetch ${MESA_GIT_TREE}
                git checkout FETCH_HEAD
            fi

            # Enable gpu drivers
            echo 'BOARD_GPU_DRIVERS := "i915 i965 i915g r300g r600g nouveau swrast vc4 virgl"' > Android.mk.new
            cat Android.mk >> Android.mk.new
            mv Android.mk.new Android.mk
            # Commit it so repo will throw it away
            git commit -m "Android: enable GPU drivers" -a -s

            cd ../..

            source build/envsetup.sh

            lunch linaro_arm64-userdebug
            make -k -j"$(nproc)" gallium_dri libGLES_mesa || { true; failed=1; }

            lunch linaro_x86_64-userdebug
            make -k -j"$(nproc)" gallium_dri i915_dri i965_dri libGLES_mesa || { true; failed=1; }

            # 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*

            ###### Don't care about artifacts for now ######
            echo "Build for mesa rev ${rev} finished - ret ${failed}"
            exit ${failed}
    publishers:
        - logparser:
            parse-rules: '/var/lib/jenkins/userContent/android.parse'
            unstable-on-warning: false
            fail-on-error: false
        - email:
            recipients: 'rob.herring@linaro.org vishal.bhoj@linaro.org'
        - email-ext:
            recipients: 'rob.herring@linaro.org, ${CI_MAIL_RECIPIENTS}, ${MESA_EMAIL_RECIPIENTS}'
            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

                branch: ${GIT_BRANCH}
                commit: ${GIT_COMMIT}

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