aboutsummaryrefslogtreecommitdiff
path: root/build-package.yaml
blob: 639d23dee0b7d86a0872e8b39b09c5b19cd4c7e5 (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
- job:
    name: build-package
    project-type: matrix
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
    parameters:
        - string:
            name: codename
            default: 'vivid'
            description: 'distribution codename targeted: vivid, utopic or jessie'
        - string:
            name: source
            description: 'dsc source url or filename'
        - string:
            name: repo
            description: 'repository to upload to'
            default: 'linaro-overlay'
    axes:
        - axis:
            type: slave
            name: label
            values:
                - docker-${codename}
                - docker-${codename}-arm64
                - docker-${codename}-armhf
    execution-strategy:
        sequential: false
    disabled: false
    display-name: 'Build package'
    wrappers:
        - timestamps
        - matrix-tie-parent:
            node: master
    builders:
        - shell: |
            #!/bin/bash

            set -ex

            arch=`dpkg-architecture -qDEB_HOST_ARCH`
            dist=`lsb_release -sc`
            # arm64 + ${codename} is the must build target with source uploads
            if [ $arch = arm64 ] && [ $dist = ${codename} ]
            then
                buildpackage_params="-sa"
            else
                buildpackage_params="-B"
            fi

            echo "arch: $arch"
            echo "dist: $dist"
            echo "source: $source"
            echo "repo: $repo"
            sudo rm -f *.changes repo work /etc/apt/sources.list.d/local.list
            # build a source repo for apt-get build-dep
            mkdir repo && cd repo
            dget --insecure -d -u $source
            dpkg-scansources . /dev/null > Sources.gz
            echo "deb-src file:$(pwd) /" > local.list
            echo "deb http://repo.linaro.org/ubuntu/linaro-overlay ${dist} main" >> local.list
            if [ "${repo}" != "linaro-overlay" ]; then
                echo "deb http://repo.linaro.org/ubuntu/${repo} ${dist} main" >> local.list
            fi
            sudo cp local.list /etc/apt/sources.list.d/
            cd ..
            localdsc=`echo $source|sed -e "s,.*/,$(pwd)/repo/,"`
            sourcename=`basename ${localdsc}|sed -e 's,_.*,,'`

            wget -O - http://repo.linaro.org/ubuntu/linarorepo.key|sudo apt-key add -
            export DEBIAN_FRONTEND=noninteractive
            sudo apt-get update
            sudo apt-get install --no-install-recommends -y build-essential fakeroot
            sudo apt-get build-dep --no-install-recommends -y ${sourcename}

            rm -rf work/
            dpkg-source -x ${localdsc} work/
            # Changelog header tampering
            sed -i -e '1 s,).*;,.'linaro$dist.1') '$dist';,' work/debian/changelog
            cd work/ && dpkg-buildpackage -rfakeroot -j`getconf _NPROCESSORS_ONLN` $buildpackage_params
            cd ..

            ls -l .
            change=`echo *changes`
            if [ ! -r $change ]
            then
                echo "no changes file"
                exit 1
            else
                cat $change
            fi
            cat > repo.parameters << EOF
            pkg_job_name=${JOB_NAME}
            key_id=B86C70FE
            pkg_changes=${change}
            host_ppa=${repo}
            EOF
    publishers:
        - copy-to-master:
            includes:
                - '*.changes, *.dsc, *.gz, *.bz2, *.xz, *.deb, *.udeb, repo.parameters'
        - trigger-parameterized-builds:
            - project: post-build-repo
              property-file: "label/docker-${codename}-arm64/repo.parameters"
              fail-on-missing: true
            - project: post-build-repo
              property-file: "label/docker-${codename}-armhf/repo.parameters"
              fail-on-missing: true
            - project: post-build-repo
              property-file: "label/docker-${codename}/repo.parameters"
              fail-on-missing: true
        - email:
            recipients: 'fathi.boudra@linaro.org riku.voipio@linaro.org'