-
Notifications
You must be signed in to change notification settings - Fork 200
135 lines (117 loc) · 3.51 KB
/
e2e.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
name: E2E Tests
on:
merge_group:
pull_request:
branches:
- main
- stable
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build-cli:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '~1.22'
check-latest: true
cache: true
cache-dependency-path: |
**/go.sum
- name: Build CLI
run: |
cd cli
go build -tags=embed_manifests -o odigos
- name: Upload CLI
uses: actions/upload-artifact@v4
with:
name: odigos-cli
path: cli/odigos
build-odigos-images:
runs-on: warp-ubuntu-latest-x64-8x-spot
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build Odigos Images
run: |
TAG=e2e-test make build-images
docker save -o odigos-images.tar $(docker images --format "{{.Repository}}:{{.Tag}}" | grep "odigos")
- name: Upload Odigos Images
uses: actions/upload-artifact@v4
with:
name: odigos-images
path: odigos-images.tar
kubernetes-test:
needs:
- build-odigos-images
- build-cli
runs-on: warp-ubuntu-latest-x64-8x-spot
strategy:
fail-fast: false
matrix:
kube-version:
- '1.20.15'
- '1.23'
- '1.30'
test-scenario:
- 'multi-apps'
- 'helm-chart'
- 'cli-upgrade'
- 'workload-lifecycle'
include:
- kube-version: '1.20.15'
kind-image: 'kindest/node:v1.20.15@sha256:a32bf55309294120616886b5338f95dd98a2f7231519c7dedcec32ba29699394'
- kube-version: '1.23'
kind-image: 'kindest/node:v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3'
- kube-version: '1.30'
kind-image: 'kindest/node:v1.30.0@sha256:047357ac0cfea04663786a612ba1eaba9702bef25227a794b52890dd8bcd692e'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '~1.22'
check-latest: true
cache: true
cache-dependency-path: |
**/go.sum
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.9.0
- name: Install chainsaw
uses: kyverno/[email protected]
- name: Create Kind Cluster
uses: helm/[email protected]
with:
node_image: ${{ matrix.kind-image }}
version: 'v0.23.0'
cluster_name: kind
- name: Install FE
# this is used for cypress tests which are not run in every scenario
if: matrix.test-scenario == 'multi-apps' || matrix.test-scenario == 'helm-chart'
run: |
cd frontend/webapp
yarn install
- name: Download and Load Docker Images to Kind
uses: actions/download-artifact@v4
with:
name: odigos-images
- run: |
docker load -i odigos-images.tar
TAG=e2e-test make load-to-kind
- name: Download CLI binary
uses: actions/download-artifact@v4
with:
name: odigos-cli
- run: |
mv odigos cli/odigos
chmod +x cli/odigos
- name: Run E2E Tests
run: |
chainsaw test tests/e2e/${{ matrix.test-scenario }}