blob: 28006dc677f2305a9a1999feffea259f6434f331 (
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
|
- job:
name: tcwg-abe-test
project-type: matrix
defaults: global
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
linaro:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
num-to-keep: 100
parameters:
- string:
name: GERRIT_PATCHSET_REVISION
default: refs/remotes/origin/master
description: 'Patched ABE revision'
- string:
name: test_list
default: 'cross_build native_build testsuite abe-tests abe-tests-checkout'
description: 'List of tests to perform'
- string:
name: scripts_branch
default: master
description: 'Scripts branch to use'
disabled: false
node: tcwg-coordinator
retry-count: 3
concurrent: true
display-name: 'TCWG BBB ABE Test'
scm:
- git:
url: https://git-us.linaro.org/toolchain/abe.git
refspec: +refs/changes/*:refs/remotes/changes/*
branches:
- ${GERRIT_PATCHSET_REVISION}
skip-tag: true
shallow-clone: false
wipe-workspace: true
choosing-strategy: gerrit
triggers:
- gerrit:
server-name: 'review.linaro.org'
override-votes: true
gerrit-build-successful-verified-value: 1
gerrit-build-failed-verified-value: -1
gerrit-build-successful-codereview-value: 1
gerrit-build-failed-codereview-value: -1
readable-message: true
successful-message: 'Works for me'
failure-message: 'Well ... it worked on my machine'
trigger-for-unreviewed-patches: true
projects:
- project-compare-type: 'ANT'
project-pattern: 'toolchain/abe'
branches:
- branch-compare-type: 'ANT'
branch-pattern: 'master'
silent-start: true
axes:
- axis:
type: slave
name: label
values:
- tcwg-x86_64-build
- axis:
type: dynamic
name: test
values:
- test_list
execution-strategy:
sequential: false
wrappers:
- timeout:
timeout: 300
- timestamps
- ssh-agent-credentials:
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- build-name:
name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
builders:
- shell: |
#!/bin/bash
set -ex
ARTIFACTS=${WORKSPACE}/artifacts
mkdir -p "${ARTIFACTS}"
# Create at least an (empty) artifact so that Jenkins does not complain
# FIXME: Create an artifact for each case below, and no empty.txt
echo > ${ARTIFACTS}/empty.txt
# Explicitly checkout the branch/revision, as gerrit choosing
# strategy doesn't pick up the right one when manually triggered.
git checkout -f ${GERRIT_PATCHSET_REVISION}
git clone -b $scripts_branch --depth 1 https://git-us.linaro.org/toolchain/jenkins-scripts
. ./jenkins-scripts/jenkins-helpers.sh
./jenkins-scripts/start-container-docker.sh --label $label --node $NODE_NAME --distro trusty --task build --prefix build_ > build-container.sh
. ./build-container.sh
BUILD_SHELL="build_container_exec bash"
$BUILD_SHELL -c "echo \"Build session is up; ulimit config:\"; ulimit -a"
# Remove schroot session on exit
trap "build_container_cleanup" EXIT HUP INT QUIT TRAP KILL PIPE TERM
status=0
case "$test" in
cross_build)
tester_label=$(print_tester_label_for_target arm-linux-gnueabihf)
./jenkins-scripts/start-container-docker.sh --label $tester_label --distro trusty --task test --prefix test_ > test-container.sh
. ./test-container.sh
trap "build_container_cleanup; test_container_cleanup" EXIT HUP INT QUIT TRAP KILL PIPE TERM
${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir ${WORKSPACE} --target arm-linux-gnueabihf --testcontainer ${test_container_host}:${test_container_port} --runtests --excludecheck gdb --override '--extraconfigdir ../config/gcc7'
status=$?
;;
native_build)
${BUILD_SHELL} -x ${WORKSPACE}/jenkins-scripts/jenkins.sh --workspace ${WORKSPACE} --abedir ${WORKSPACE} --target native --runtests --bootstrap --excludecheck gdb --override '--extraconfigdir ../config/gcc6'
status=$?
;;
testsuite)
${BUILD_SHELL} -c "set -ex; ./configure; make check"
status=$?
;;
abe-tests)
${BUILD_SHELL} -c "set -ex; git clone https://git.linaro.org/toolchain/abe-tests.git; cd abe-tests; ./test-manifest2.sh --abe-path `pwd` --ref-snapshots /home/tcwg-buildslave/snapshots-ref --quiet --display-summary" || status=$?
cp abe-tests/full-manifest-test/*.txt ${ARTIFACTS}
rm ${ARTIFACTS}/empty.txt
# full build logs are large, and not very useful, so we
# don't waste the disk space on them
rm -f ${ARTIFACTS}/test-mani-build[12].txt
;;
abe-tests-checkout)
${BUILD_SHELL} -c "set -ex; git clone https://git.linaro.org/toolchain/abe-tests.git; cd abe-tests; ./test-checkout.sh --clean-snapshots --abe-path `pwd` --ref-snapshots /home/tcwg-buildslave/snapshots-ref" || status=$?
cp abe-tests/checkout-test/workspace*/test_*.log ${ARTIFACTS}
rm artifacts/empty.txt
# the reports from here aren't usually needed, so are
# worth compressing
xz ${ARTIFACTS}/*
;;
esac
exit ${status}
publishers:
- workspace-cleanup:
include:
- "nothing"
dirmatch: true
- archive:
artifacts: 'artifacts/*'
latest-only: false
|