-
Notifications
You must be signed in to change notification settings - Fork 43
140 lines (119 loc) · 4.04 KB
/
tests.yaml
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
name: Spread tests
on:
schedule:
# Weekly sunday testing for bitrot
- cron: '0 12 * * 0'
push:
branches:
- main
- 'core[0-9][0-9]'
pull_request:
branches:
- main
- 'core[0-9][0-9]'
jobs:
build:
runs-on: self-hosted
steps:
- name: Cleanup job workspace
id: cleanup-job-workspace
run: |
rm -rf "${{ github.workspace }}"
mkdir "${{ github.workspace }}"
- uses: actions/checkout@v4
- name: x86 build
run: |
spread -artifacts=./artifacts google-nested:tests/spread/build/
find ./artifacts -type f -name "*.artifact" -exec cp {} "${{ github.workspace }}" \;
- name: arm64 build
run: |
spread-arm -artifacts=./artifacts google-nested-arm:tests/spread/build/
find ./artifacts -type f -name "*.artifact" -exec cp {} "${{ github.workspace }}" \;
- uses: actions/upload-artifact@v4
with:
name: core-snap
path: "${{ github.workspace }}/core24.artifact"
- name: Discard spread workers
if: always()
run: |
shopt -s nullglob
for r in .spread-reuse.*.yaml; do
spread -discard -reuse-pid="$(echo "$r" | grep -o -E '[0-9]+')"
done
tests-main:
runs-on: self-hosted
needs: build
steps:
- name: Cleanup job workspace
id: cleanup-job-workspace
run: |
rm -rf "${{ github.workspace }}"
mkdir "${{ github.workspace }}"
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: core-snap
path: "${{ github.workspace }}/core24.artifact"
- name: Run x86 tests
run: |
spread google-nested:tests/spread/main/
- name: Run arm64 tests
run: |
spread-arm google-nested-arm:tests/spread/main/
- name: Discard spread workers
if: always()
run: |
shopt -s nullglob
for r in .spread-reuse.*.yaml; do
spread -discard -reuse-pid="$(echo "$r" | grep -o -E '[0-9]+')"
done
tests-snapd:
runs-on: ubuntu-latest
needs: build
steps:
- name: Cleanup job workspace
id: cleanup-job-workspace
run: |
rm -rf "${{ github.workspace }}"
mkdir "${{ github.workspace }}"
- uses: actions/checkout@v4
with:
path: core-base
- uses: actions/checkout@v4
with:
repository: 'snapcore/snapd'
path: snapd
- uses: actions/download-artifact@v4
with:
name: core-snap
- name: Install spread
run: curl -s https://storage.googleapis.com/snapd-spread-tests/spread/spread-amd64.tar.gz | sudo tar xzv -C /usr/bin
- name: Build image
working-directory: '${{ github.workspace }}'
run: |
PROJECT_PATH=$PWD/core-base
# For os.query and others
PATH=$PATH:$PROJECT_PATH/tests/lib/external/snapd-testing-tools/tools/
. "core-base/tests/lib/prepare-utils.sh"
echo "************* INSTALLING DEPS *************"
install_base_deps
echo "************* DOWNLOADING SNAPS *************"
download_core24_snaps 'edge'
echo "************* WRITING CLOUD-INIT CONFIG *************"
prepare_base_cloudinit
echo "************* BUILDING CORE24 IMAGE *************"
uc_snap="$(get_core_snap_name)"
mv core24.artifact "$uc_snap"
build_base_image
echo "************* STARTING CORE24 VM *************"
start_snapd_core_vm '${{ github.workspace }}'
cd snapd
# add any test suites that should be tested here
SPREAD_EXTERNAL_ADDRESS=localhost:8022 spread external:ubuntu-core-24-64:tests/smoke/
- name: Discard spread workers
if: always()
run: |
shopt -s nullglob
for r in .spread-reuse.*.yaml; do
spread -discard -reuse-pid="$(echo "$r" | grep -o -E '[0-9]+')"
done