aboutsummaryrefslogtreecommitdiff
path: root/96boards-hikey-android.yaml
blob: adf033578d06581c447851eb9c2c24b78db32228 (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
- job:
    name: 96boards-hikey-android
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 60
        numToKeep: 60
    properties:
        - authorization:
            anonymous:
                - job-read
            linaro:
                - job-build
                - job-cancel
    parameters:
        - string:
            name: BUILD_CONFIG_FILENAME
            default: 'armv8-android-hikey-3.18'
    disabled: true
    node: docker-utopic-aosp
    display-name: '96boards - HiKey (Android)'
    concurrent: true
    wrappers:
        - timestamps
        - timeout:
            timeout: 500
    builders:
        - shell: |
            #!/bin/bash

            java -version

            sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
            sudo apt-get update
            sudo apt-get install -y gcc-4.9-multilib bison git gperf libxml2-utils python-mako zip time python-requests genisoimage patch mtools

            mkdir -p ${HOME}/bin ${WORKSPACE}/build/out
            curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
            chmod a+x ${HOME}/bin/*
            export PATH=${HOME}/bin:${PATH}

            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}

            git config --global user.email "ci_notify@linaro.org"
            git config --global user.name "Linaro CI"

            # Runs as ubuntu
            set -xe
            rm -rf build-tools jenkins-tools build/out build/android-patchsets
            git clone --depth 1 https://git.linaro.org/infrastructure/linaro-android-build-tools.git build-tools
            git clone --depth 1 https://git.linaro.org/infrastructure/linaro-jenkins-tools.git jenkins-tools

            cat << EOF > config.txt
            BUILD_CONFIG_REPO=http://android-git.linaro.org/git/android-build-configs.git
            BUILD_CONFIG_BRANCH=master
            EOF
            echo config.txt
            export CONFIG=`base64 -w 0 config.txt`

            # Build Android
            build-tools/node/build us-east-1.ec2-git-mirror.linaro.org "${CONFIG}"
            cp -a /home/buildslave/srv/${JOB_NAME}/build/out/*.xml ${WORKSPACE}/

            # Create bigger userdata partition for 8gb emmc
            cd build/
            out/host/linux-x86/bin/make_ext4fs -s -T -1 -S out/root/file_contexts -L data -l 5588893184 -a data out/userdata-8gb.img out/data
            cd -

            cd build/out
            mv userdata.img userdata-4gb.img
            rm -f boot.img ramdisk.img
            for image in "boot_fat.uefi.img" "system.img" "userdata-4gb.img" "userdata-8gb.img" "cache.img"; do
              echo "Compressing ${image}"
              tar -Jcf ${image}.tar.xz ${image}
              rm -f ${image}
            done
            cd -

            # Publish parameters
            cat << EOF > ${WORKSPACE}/publish_parameters
            PUB_DEST=snapshots/hikey/linaro/aosp/${BUILD_NUMBER}
            PUB_SRC=${PWD}/build/out
            EOF
        - inject:
            properties-file: publish_parameters
        - linaro-publish-token:
            host: builds.96boards.org
        - shell:
            !include-raw:
                - android/linaro-publisher.sh
        - shell:
            cd /home/buildslave/srv/${JOB_NAME}
            build-tools/node/lava-submit "${CONFIG}"

            for f in $(ls -1 build/out/lava-job-info* 2>/dev/null); do
              time linaro-cp.py \
                --no-build-info \
                --split-job-owner \
                --server ${PUBLISH_SERVER} \
                ${f} \
                ${PUB_DEST}
            done

            echo "Build finished"
    publishers:
        - archive:
            artifacts: '*.xml'
            latest-only: true
        - logparser:
            parse-rules: '/var/lib/jenkins/userContent/android.parse'
            unstable-on-warning: false
            fail-on-error: false
        - fingerprint:
            files: 'build/fingerprints/*'
        - email:
            recipients: 'vishal.bhoj@linaro.org fathi.boudra@linaro.org'