blob: e838e4862d7ebb6530a81df0cf8715ef773834d5 (
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
- job:
name: 96boards-reference-platform-openembedded-krogoth
project-type: matrix
defaults: global
logrotate:
daysToKeep: 30
numToKeep: 30
artifactNumToKeep: 1
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
- job-workspace
linaro:
- job-read
- job-extended-read
- job-build
- job-cancel
parameters:
- string:
name: IMAGES
default: 'rpb-console-image rpb-console-image-lava'
- string:
name: MANIFEST_BRANCH
default: 'krogoth'
- string:
name: BUNDLE_STREAM_NAME
default: '/public/team/linaro/rpb-openembedded-${MANIFEST_BRANCH}/'
- string:
name: LAVA_SERVER
default: 'validation.linaro.org/RPC2/'
disabled: false
node: master
display-name: 'Reference Platform - OpenEmbedded (krogoth)'
axes:
- axis:
type: user-defined
name: MACHINE
values:
- dragonboard-410c
- dragonboard-820c
- hikey
- 96boards-64
- sd-600eval
- axis:
type: user-defined
name: DISTRO
values:
- rpb
- rpb-wayland
- axis:
type: slave
name: label
values:
- docker-jessie-amd64
execution-strategy:
sequential: true
wrappers:
- timestamps
- matrix-tie-parent:
node: master
builders:
- linaro-publish-token:
host: builds.96boards.org
- shell: |
#!/bin/bash
# workaround EDK2 is confused by the long path used during the build
# and truncate files name expected by VfrCompile
sudo mkdir -p /srv/oe
sudo chown buildslave:buildslave /srv/oe
cd /srv/oe
set -ex
trap cleanup_exit INT TERM EXIT
cleanup_exit()
{
echo "Running cleanup_exit..."
}
sudo apt-get update
sudo apt-get install -y python-pycurl chrpath gawk texinfo libsdl1.2-dev whiptail diffstat cpio libssl-dev
mkdir -p ${HOME}/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
chmod a+x ${HOME}/bin/repo
export PATH=${HOME}/bin:${PATH}
# initialize repo if not done already
if [ ! -e ".repo/manifest.xml" ]; then
repo init -u https://github.com/96boards/oe-rpb-manifest.git -b ${MANIFEST_BRANCH}
# link to shared downloads on persistent disk
# our builds config is expecting downloads and sstate-cache, here.
# DL_DIR = "${OEROOT}/sources/downloads"
# SSTATE_DIR = "${OEROOT}/build/sstate-cache"
mkdir -p ${HOME}/srv/oe/downloads ${HOME}/srv/oe/sstate-cache
mkdir -p build
ln -s ${HOME}/srv/oe/downloads
ln -s ${HOME}/srv/oe/sstate-cache
fi
repo sync
cp .repo/manifest.xml source-manifest.xml
repo manifest -r -o pinned-manifest.xml
MANIFEST_COMMIT=$(cd .repo/manifests && git rev-parse --short HEAD)
# the setup-environment will create auto.conf and site.conf
# make sure we get rid of old config.
# let's remove the previous TMPDIR as well.
# we want to preserve build/buildhistory though.
rm -rf conf build/conf build/tmp-*glibc/
# Accept EULA if/when needed
export EULA_dragonboard410c=1
source setup-environment build
# Add job BUILD_NUMBER to output files names
cat << EOF >> conf/auto.conf
IMAGE_NAME_append = "-${BUILD_NUMBER}"
KERNEL_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
MODULE_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
DT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
BOOT_IMAGE_BASE_NAME_append = "-${BUILD_NUMBER}"
EOF
# get build stats to make sure that we use sstate properly
cat << EOF >> conf/auto.conf
INHERIT += "buildstats buildstats-summary"
EOF
# add useful debug info
cat conf/{site,auto}.conf
[ "${DISTRO}" = "rpb" ] && IMAGES+=" rpb-desktop-image rpb-desktop-image-lava"
[ "${DISTRO}" = "rpb-wayland" ] && IMAGES+=" rpb-weston-image rpb-weston-image-lava"
bitbake ${IMAGES}
DEPLOY_DIR_IMAGE=$(bitbake -e | grep "^DEPLOY_DIR_IMAGE="| cut -d'=' -f2 | tr -d '"')
# Prepare files to publish
rm -f ${DEPLOY_DIR_IMAGE}/*.txt
rm -rf ${DEPLOY_DIR_IMAGE}/bootloader
find ${DEPLOY_DIR_IMAGE} -type l -delete
mv /srv/oe/{source,pinned}-manifest.xml ${DEPLOY_DIR_IMAGE}
# Create MD5SUMS file
(cd ${DEPLOY_DIR_IMAGE} && md5sum * > MD5SUMS.txt)
# Move HiKey's bootloader related files into its own subdir
[ "${MACHINE}" = "hikey" ] && {
mkdir -p ${DEPLOY_DIR_IMAGE}/bootloader
(cd ${DEPLOY_DIR_IMAGE} && mv fip.bin hisi-idt.py l-loader.bin nvme.img ptable-linux-*.img bootloader/)
}
# Build information
cat > ${DEPLOY_DIR_IMAGE}/HEADER.textile << EOF
h4. Reference Platform Build - CE OpenEmbedded
Build description:
* Build URL: "$BUILD_URL":$BUILD_URL
* Manifest URL: "https://github.com/96boards/oe-rpb-manifest.git":https://github.com/96boards/oe-rpb-manifest.git
* Manifest branch: ${MANIFEST_BRANCH}
* Manifest commit: "${MANIFEST_COMMIT}":https://github.com/96boards/oe-rpb-manifest/commit/${MANIFEST_COMMIT}
EOF
# 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 \
${DEPLOY_DIR_IMAGE}/ \
snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}
# Ignore error as we always want to create post_build_lava_parameters
set +e
cat << EOF > ${WORKSPACE}/post_build_lava_parameters
BOOT_URL=http://builds.96boards.org/snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}/$(ls ${DEPLOY_DIR_IMAGE}/boot-*-${MACHINE}-*-${BUILD_NUMBER}.img | xargs basename)
ROOTFS_BUILD_URL=http://builds.96boards.org/snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}/$(ls ${DEPLOY_DIR_IMAGE}/rpb-console-image-lava-${MACHINE}-*-${BUILD_NUMBER}.rootfs.ext4.gz | xargs basename)
SYSTEM_URL=http://builds.96boards.org/snapshots/reference-platform/openembedded/${MANIFEST_BRANCH}/${MACHINE}/${DISTRO}/${BUILD_NUMBER}/$(ls ${DEPLOY_DIR_IMAGE}/rpb-console-image-lava-${MACHINE}-*-${BUILD_NUMBER}.rootfs.ext4.gz | xargs basename)
EOF
- inject:
properties-file: post_build_lava_parameters
- shell: |
case "${MACHINE}" in
dragonboard-410c)
export DEVICE_TYPE=apq8016-sbc
;;
*)
echo "Skip DEVICE_TYPE for ${MACHINE}"
;;
esac
rm -rf configs lci-build-tools
git clone --depth 1 http://git.linaro.org/ci/lci-build-tools.git
git clone --depth 1 http://git.linaro.org/ci/job/configs.git
[ -z "${DEVICE_TYPE}" ] || ./lci-build-tools/yaml-to-json.py configs/96boards-reference-platform-openembedded/lava-job-definitions/${DEVICE_TYPE}/template.yaml > custom_lava_job_definition.json
cat << EOF > post_build_lava_parameters
DEVICE_TYPE=${DEVICE_TYPE}
BUNDLE_STREAM_NAME=${BUNDLE_STREAM_NAME}
CUSTOM_JSON_URL=${JOB_URL}/ws/custom_lava_job_definition.json
LAVA_SERVER=${LAVA_SERVER}
EOF
- trigger-builds:
- project: 'post-build-lava'
property-file: post_build_lava_parameters
block: true
publishers:
# We can only archive files that are located in the workspace
# - archive:
# artifacts: 'build/tmp-*glibc/deploy/images/${MACHINE}/*'
- email:
recipients: 'fathi.boudra@linaro.org koen.kooi@linaro.org nicolas.dechesne@linaro.org'
|