aboutsummaryrefslogtreecommitdiff
path: root/96boards-reference-kernel.yaml
blob: 26ec82f45b8b6e62ef7160f712a7cf7385c66ddc (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
- job:
    name: 96boards-reference-kernel
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
                - job-workspace
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
    parameters:
        - string:
            name: KERNEL_BRANCH
            default: 'hikey-mainline'
        - string:
            name: KERNEL_CONFIG
            default: 'defconfig 96boards.config'
    disabled: false
    node: docker-utopic-amd64
    display-name: '96boards - Reference Component - Linux Kernel'
    scm:
        - git:
            url: https://git.linaro.org/people/amit.kucheria/kernel.git
            refspec: +refs/heads/${KERNEL_BRANCH}:refs/remotes/origin/${KERNEL_BRANCH}
            name: origin
            branches:
                - refs/heads/${KERNEL_BRANCH}
            skip-tag: true
            shallow-clone: true
            wipe-workspace: false
    wrappers:
        - timestamps
        - build-name:
            name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
    builders:
        - linaro-publish-token:
            host: builds.96boards.org
        - shell: |
            #!/bin/bash

            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 ccache python-pycurl

            set -ex

            trap cleanup_exit INT TERM EXIT

            cleanup_exit()
            {
              cd ${WORKSPACE}
              rm -rf lci-build-tools
              rm -rf builddir*
              rm -rf out
            }

            export LANG=C
            CCACHE_DIR="${HOME}/srv/ccache"
            CCACHE_UNIFY=1
            CCACHE_SLOPPINESS=file_macro,include_file_mtime,time_macros
            export CCACHE_DIR CCACHE_UNIFY CCACHE_SLOPPINESS
            export use_ccache=true
            export make_bootwrapper=false
            export make_install=true
            export kernel_flavour=reference
            export kernel_config="${KERNEL_CONFIG}"
            export MAKE_DTBS=true
            export ARCH=arm64
            export tcbindir="${HOME}/srv/toolchain/arm64-tc-15.02/bin"
            export toolchain_url="http://releases.linaro.org/15.02/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz"

            # Export the kernel packaging version
            kernel_version=`make kernelversion`
            kernel_release=${kernel_version}-linaro-${kernel_flavour}
            export KDEB_PKGVERSION="${kernel_release}-${BUILD_NUMBER}"

            # Build the kernel
            rm -rf lci-build-tools
            git clone --depth 1 http://git.linaro.org/ci/lci-build-tools.git
            bash -x lci-build-tools/jenkins_kernel_build_inst

            # Final preparation for publishing
            cp -a *.dsc *.changes *.deb out/
            cp linux*orig.tar.gz out/

            # 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 python ${HOME}/bin/linaro-cp.py \
              --server ${PUBLISH_SERVER} \
              --link-latest \
              out snapshots/reference-platform/components/linux/common/${BUILD_NUMBER}/

            CCACHE_DIR=${CCACHE_DIR} ccache -M 30G
            CCACHE_DIR=${CCACHE_DIR} ccache -s

            # Create post-build parameters (useful for other jobs)
            cat << EOF >> post_build_parameters
            KERNEL_VERSION=${kernel_version}
            KERNEL_RELEASE=${kernel_release}
            KDEB_PKGVERSION=${KDEB_PKGVERSION}
            EOF
        - inject:
            properties-file: post_build_parameters
    publishers:
        - email:
            recipients: 'ricardo.salveti@linaro.org amit.kucheria@linaro.org'