-
Notifications
You must be signed in to change notification settings - Fork 27
145 lines (120 loc) · 3.53 KB
/
test-build.yml
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
name: test-build
on:
pull_request:
push:
schedule:
- cron: '30 3 * * 2'
concurrency:
group: "${{ github.ref }}"
cancel-in-progress: true
jobs:
build-debian:
strategy:
# Keep other matrix jobs running, even if one fails.
fail-fast: false
matrix:
host_release:
- unstable
- trixie
- bookworm
- bullseye
# We want a working shell, qemu, python and docker. Specific version should not matter (much).
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./tests/gha-build-deb.sh
name: "Build .deb for ${{matrix.host_release}}"
env:
HOST_RELEASE: ${{matrix.host_release}}
- name: Archive built .deb
uses: actions/upload-artifact@v3
with:
name: deb-${{matrix.host_release}}
if-no-files-found: error
path: |
*.deb
test-debian:
needs: build-debian
strategy:
# Keep other matrix jobs running, even if one fails.
fail-fast: false
matrix:
host_release:
- unstable
- trixie
- bookworm
- bullseye
release:
- trixie
- bookworm
- bullseye
- buster
- stretch
debootstrap:
- ''
- mmdebstrap
exclude:
# debootstrap in bullseye is too old.
- host_release: bullseye
release: trixie
# unclear how to pass --no-check-gpg to mmdebstrap
- release: stretch
debootstrap: mmdebstrap
# We want a working shell, qemu, python and docker. Specific version should not matter (much).
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download built deb
uses: actions/download-artifact@v3
with:
name: deb-${{matrix.host_release}}
- run: ./tests/build-vm-and-test.sh setup
name: "Setup test environment"
- run: ./tests/build-vm-and-test.sh run
name: "Build VM image using grml-debootstrap on host ${{matrix.host_release}} for ${{matrix.release}} using debootstrap=${{matrix.debootstrap}}"
env:
HOST_RELEASE: ${{matrix.host_release}}
RELEASE: ${{matrix.release}}
DEBOOTSTRAP: ${{matrix.debootstrap}}
- run: ./tests/build-vm-and-test.sh test
name: "Test built VM image for ${{matrix.release}}"
env:
RELEASE: ${{matrix.release}}
- name: Archive VM test results
uses: actions/upload-artifact@v3
with:
name: vm-results-${{matrix.host_release}}-${{matrix.release}}-${{matrix.debootstrap}}
if-no-files-found: error
path: tests/results/
b2b-diff:
needs: build-debian
# We want a working shell, qemu, python and docker. Specific version should not matter (much).
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download built deb
uses: actions/download-artifact@v3
with:
name: deb-unstable
- run: ./tests/gha-b2b-diff.sh run
name: "Build VM image twice"
env:
HOST_RELEASE: unstable
RELEASE: trixie
DEBOOTSTRAP: debootstrap
- name: Setup tmate session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 45
with:
limit-access-to-actor: true
- run: ./tests/gha-b2b-diff.sh test
name: "Diff built images"
env:
RELEASE: unstable
- name: Archive VM test results
uses: actions/upload-artifact@v3
with:
name: b2b-diff
if-no-files-found: error
path: diff.txt