-
Notifications
You must be signed in to change notification settings - Fork 90
166 lines (139 loc) · 4.05 KB
/
unit_tests.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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
name: vHive unit tests
on:
push:
branches: [ main, legacy-firecracker-v0.24.0-with-upf-support ]
paths-ignore:
- 'docs/**'
- '**.md'
- 'function-images/**'
pull_request:
branches: [ main, legacy-firecracker-v0.24.0-with-upf-support ]
paths-ignore:
- 'docs/**'
- '**.md'
- 'function-images/**'
workflow_dispatch:
env:
GOOS: linux
GO111MODULE: on
jobs:
unit-test:
name: Unit test
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
module: [misc, networking, snapshotting]
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Set up Go version in go.mod file
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.workspace }}/go.mod
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Set up Python 3.x
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Build setup scripts
run: pushd scripts && go build -o setup_tool && popd
- name: Add rsync
run: |
sudo apt update
sudo apt install rsync -y
- name: Setup System
run: ./scripts/setup_tool setup_system
- name: Build
run: go build -race -v -a ./...
- name: Run tests in submodules
env:
MODULE: ${{ matrix.module }}
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
run: |
make -C $MODULE test
make -C $MODULE test-man
profile-unit-test:
name: "Unit test: profile unit test"
runs-on: [self-hosted, profile]
strategy:
fail-fast: false
matrix:
module: [profile]
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Set up Go version in go.mod file
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.workspace }}/go.mod
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Set up Python 3.x
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Build setup scripts
run: pushd scripts && go build -o setup_tool && popd
- name: Add rsync
run: |
sudo apt update
sudo apt install rsync -y
- name: Setup System
run: ./scripts/setup_tool setup_system
- name: Install PMU tools
run: ./scripts/setup_tool install_pmutools
- name: Build
run: go build -race -v -a ./...
- name: Run tests in submodules
env:
MODULE: ${{ matrix.module }}
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
run: |
make -C $MODULE test
make -C $MODULE test-man
firecracker-containerd-interface-test:
name: "Unit tests: Firecracker-containerd interface"
runs-on: [self-hosted, integ]
strategy:
fail-fast: false
matrix:
module: [ ctriface, ctriface/image, devmapper ]
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
lfs: true
- name: Set up Go version in go.mod file
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.workspace }}/go.mod
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Add rsync
run: |
sudo apt update
sudo apt install rsync -y
- name: Build setup scripts
run: pushd scripts && go build -o setup_tool && popd
- name: Pull binaries
run: ./scripts/setup_tool setup_firecracker_containerd
- name: Build
run: go build -race -v -a ./...
- name: Run tests in submodules
env:
MODULE: ${{ matrix.module }}
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
run: |
make -C $MODULE test
make -C $MODULE test-man
- name: Cleaning
if: ${{ always() }}
run: ./scripts/setup_tool clean_fcctr