blob: 811468cb5f8b0ede07e7049966fba0f4133eb805 (
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
|
- 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'
- bool:
name: dryrun
default: false
description: 'Dry-run, do nothing, just print steps'
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 --task build --prefix build_ --dryrun $dryrun > 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 container on exit
trap "build_container_cleanup" EXIT HUP INT QUIT TRAP KILL PIPE TERM
if $dryrun; then
DRYRUNCMD="echo DRYRUN:"
else
DRYRUNCMD=
fi
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 --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=$?
$DRYRUNCMD cp abe-tests/full-manifest-test/*.txt ${ARTIFACTS}
$DRYRUNCMD rm ${ARTIFACTS}/empty.txt
# full build logs are large, and not very useful, so we
# don't waste the disk space on them
$DRYRUNCMD 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=$?
$DRYRUNCMD cp abe-tests/checkout-test/workspace*/test_*.log ${ARTIFACTS}
$DRYRUNCMD rm artifacts/empty.txt
# the reports from here aren't usually needed, so are
# worth compressing
$DRYRUNCMD xz ${ARTIFACTS}/*
;;
esac
exit ${status}
publishers:
- workspace-cleanup:
include:
- "nothing"
dirmatch: true
- archive:
artifacts: 'artifacts/*'
latest-only: false
|