forked from xen-project/xen
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.cirrus.yml
More file actions
174 lines (137 loc) · 4.67 KB
/
Copy path.cirrus.yml
File metadata and controls
174 lines (137 loc) · 4.67 KB
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
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
freebsd_versions: &FREEBSD_VERSIONS
env:
FREEBSD_LEGACY: freebsd-13-5
FREEBSD_PRODUCTION: freebsd-14-2
FREEBSD_CURRENT: freebsd-15-0-snap
# Build jobs
freebsd_template: &FREEBSD_ENV
environment:
APPEND_LIB: /usr/local/lib
APPEND_INCLUDES: /usr/local/include
CIRRUS_CLONE_DEPTH: 1
CIRRUS_LOG_TIMESTAMP: true
freebsd_template_latest: &FREEBSD_ENV_PRODUCTION
<< : *FREEBSD_VERSIONS
freebsd_instance:
image_family: $FREEBSD_PRODUCTION
<< : *FREEBSD_ENV
freebsd_configure_artifacts: &FREEBSD_CONFIGURE_ARTIFACTS
always:
rename_script:
- cp xen/.config xen-config
config_artifacts:
path: xen-config
type: text/plain
task:
name: 'FreeBSD: full build'
# It's not possible to use the matrix keyword in YAML aliases, as they
# keyword usage is restricted to task, docker_builder or pipe. Attempting to
# use a YAML alias with the duplicated keys doesn't work either. Use an env
# variable so the version can also be appended to the task alias.
<< : *FREEBSD_VERSIONS
env:
matrix:
FREEBSD_VERSION: $FREEBSD_LEGACY
FREEBSD_VERSION: $FREEBSD_PRODUCTION
FREEBSD_VERSION: $FREEBSD_CURRENT
alias: freebsd_full_$FREEBSD_VERSION
freebsd_instance:
image_family: $FREEBSD_VERSION
<< : *FREEBSD_ENV
install_script: pkg install -y seabios gmake ninja bash
pkgconf bison perl5
yajl lzo2 pixman argp-standalone
libxml2 glib git python3
configure_script:
- cc --version
- ./configure --with-system-seabios=/usr/local/share/seabios/bios.bin
- gmake -j`sysctl -n hw.ncpu` -C xen clang=y defconfig
<< : *FREEBSD_CONFIGURE_ARTIFACTS
build_script:
- gmake -j`sysctl -n hw.ncpu` clang=y
xen_artifacts:
path: xen/xen
type: application/octet-stream
debug_artifacts:
path: xen/xen-syms
type: application/octet-stream
task:
name: 'FreeBSD: randconfig build'
# It's not possible to use the matrix keyword in YAML aliases, as they
# keyword usage is restricted to task, docker_builder or pipe. Attempting to
# use a YAML alias with the duplicated `image_family` keys doesn't work
# either. Abstract the version numbers at least.
<< : *FREEBSD_VERSIONS
freebsd_instance:
matrix:
image_family: $FREEBSD_LEGACY
image_family: $FREEBSD_PRODUCTION
image_family: $FREEBSD_CURRENT
<< : *FREEBSD_ENV
install_script: pkg install -y gmake python3 bison
configure_script:
- cc --version
- gmake -j`sysctl -n hw.ncpu` -C xen clang=y \
KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig
<< : *FREEBSD_CONFIGURE_ARTIFACTS
build_script:
- gmake -j`sysctl -n hw.ncpu` build-xen clang=y
task:
name: 'FreeBSD: XTF build'
alias: xtf
<< : *FREEBSD_ENV_PRODUCTION
clone_script:
- pkg install -y git
- git clone --depth 1 https://xenbits.xen.org/git-http/xtf.git
install_script: pkg install -y gmake
build_script:
- cd xtf
- cc --version
- git rev-parse HEAD
- gmake -j`sysctl -n hw.ncpu` LLVM=y
xtf_artifacts:
path: xtf/tests/selftest/test-*-selftest
type: application/octet-stream
# Test jobs
task:
name: 'FreeBSD: XTF selftest'
<< : *FREEBSD_ENV_PRODUCTION
env:
matrix:
FREEBSD_BUILD: $FREEBSD_LEGACY
FREEBSD_BUILD: $FREEBSD_PRODUCTION
FREEBSD_BUILD: $FREEBSD_CURRENT
depends_on:
- freebsd_full_$FREEBSD_BUILD
- xtf
install_script: pkg install -y qemu-nox11 expect
env:
matrix:
XTF_ARCH: hvm32
XTF_ARCH: hvm32pae
XTF_ARCH: hvm32pse
XTF_ARCH: hvm64
XTF_ARCH: pv64
fetch_script:
- fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/xtf/xtf.zip
- fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/freebsd_full_$FREEBSD_BUILD/xen.zip
- unzip xtf.zip
- unzip xen.zip
test_script: |
case "$XTF_ARCH" in \
*hvm*) \
XEN_EXTRA_CMD="dom0=pvh dom0-iommu=none" \
;; \
esac
export TEST_CMD="qemu-system-x86_64 -kernel xen/xen -initrd xtf/tests/selftest/test-${XTF_ARCH}-selftest \
-append \"loglvl=all console=com1 noreboot console_timestamps=boot dom0=verbose ${XEN_EXTRA_CMD}\" \
-m 512 -nographic -monitor none -serial stdio"
export TEST_LOG="serial-${FREEBSD_BUILD}-${XTF_ARCH}.txt"
export PASSED="Test result: SUCCESS"
export TEST_TIMEOUT=120
./automation/scripts/console.exp | sed 's/\r\+$//'
always:
serial_artifacts:
path: serial-*.txt
type: text/plain