blob: 3235887444290ba7afa438c42856925285595b73 (
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
|
- job:
name: tcwg-test-release
project-type: freestyle
defaults: global
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
linaro:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 60
num-to-keep: 100
parameters:
- string:
name: tarball_url
default: ''
description: 'The GCC binary tarball to test'
- string:
name: scripts_branch
default: refs/remotes/origin/master
description: 'Scripts revision to use '
- string:
name: build_container_tag
default: 'lts_1'
description: 'Distro to use for the container: xenial, bionic, focal.'
- string:
name: release
default:
description: 'Release name, only displayed in job name'
- string:
name: target
default:
description: 'Target, only displayed in job name'
- string:
name: tcwg_regression_rev
default: 'master'
description: 'tcwg-regression revision to use'
- bool:
name: debug
default: false
description: 'Whether to enable bash debugging output.'
- bool:
name: dryrun
default: false
description: 'Dry-run, do nothing, just print steps'
disabled: false
node: tcwg-x86_64-cam
retry-count: 3
concurrent: true
workspace: /home/tcwg-buildslave/workspace/tcwg-test-release/$release/$target
display-name: 'TCWG Test Release'
scm:
- git:
url: https://git.linaro.org/toolchain/jenkins-scripts.git
refspec: +refs/changes/*:refs/remotes/changes/*
branches:
- ${scripts_branch}
skip-tag: true
shallow-clone: true
wipe-workspace: true
wrappers:
- timeout:
timeout: 300
- timestamps
- ssh-agent-credentials:
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- build-name:
name: '#${BUILD_NUMBER}-${ENV,var="release"}-${ENV,var="target"}'
builders:
- shell: |
#!/bin/bash
. jenkins-helpers.sh
if test x${debug} = x"true"; then
shell="/bin/bash -x"
set -x
else
shell="/bin/bash"
fi
# tarball_url is read from the tcwg.params file, which is
# setup by the MakeRelease job.
if test x"${tarball_url}" = x; then
echo "ERROR: no binary tarball specified!"
exit 1
fi
# Start build container
builder=$(print_host_for_node $NODE_NAME)
build_container_type=docker
# Use tarball name to decide if we use an i386 container or an amd64 one
tarball_file=$(basename ${tarball_url})
case ${tarball_file} in
*-i686*)
builder_arch=i386
echo "ERROR: i386 containers no longer supported for tarball ${tarball_file}"
exit 1
;;
*-x86_64*) builder_arch=amd64 ;;
*)
echo "ERROR: could not determine container type from tarball ${tarball_file}"
exit 1
;;
esac
bash -x ${WORKSPACE}/start-container-${build_container_type}.sh --arch ${builder_arch} --distro ${build_container_tag} --session-host ${builder} --dryrun ${dryrun} > build-container.sh
# Define CONTAINER, CONTAINER_CLEANUP, session_host and session_port
. ./build-container.sh
BUILD_CONTAINER="${CONTAINER}"
BUILD_CONTAINER_CLEANUP="${CONTAINER_CLEANUP}"
# Make sure to cleanup build container if something goes wrong
if [ x"${BUILD_CONTAINER_CLEANUP}" != x ]; then
CONTAINERS_CLEANUP="${BUILD_CONTAINER_CLEANUP}"
trap "${CONTAINERS_CLEANUP}" EXIT
fi
${BUILD_CONTAINER} "cd ${WORKSPACE} && ${shell} ${WORKSPACE}/TestRelease.job --tarball ${tarball_url} --tcwg-regression-rev ${tcwg_regression_rev}"
exit $?
publishers:
- email-ext:
recipients: 'tcwg-validation@linaro.org'
aborted: true
send-to:
requester
recipients
|