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'
|