-
Notifications
You must be signed in to change notification settings - Fork 17
133 lines (114 loc) · 3.51 KB
/
e2e.yaml
File metadata and controls
133 lines (114 loc) · 3.51 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
name: End-to-end tests
on:
workflow_dispatch:
pull_request:
merge_group:
permissions:
contents: read
jobs:
changes:
if: github.repository_owner == 'jumpstarter-dev'
runs-on: ubuntu-latest
outputs:
should_run: ${{ steps.filter.outputs.e2e }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: dorny/paths-filter@v3
id: filter
with:
base: ${{ github.base_ref || github.event.merge_group.base_ref || 'main' }}
filters: |
e2e:
- 'controller/**'
- 'e2e/**'
- 'python/**'
- '.github/workflows/e2e.yaml'
- 'Makefile'
e2e-tests:
needs: changes
if: needs.changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch'
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-24.04-arm
method:
- operator
- helm
exclude:
# Only run operator on ARM, skip helm
- os: ubuntu-24.04-arm
method: helm
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Setup e2e test environment
run: make e2e-setup
env:
CI: true
METHOD: ${{ matrix.method }}
- name: Run e2e tests
run: make e2e-run
env:
CI: true
METHOD: ${{ matrix.method }}
# ============================================================================
# Compatibility tests: cross-version interop between controller and client/exporter
# These jobs can be removed once 0.7.x controller support is no longer needed.
# ============================================================================
e2e-compat-old-controller:
needs: changes
if: needs.changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Setup compat environment (old controller v0.7.0)
run: make e2e-compat-setup COMPAT_SCENARIO=old-controller
env:
CI: true
COMPAT_CONTROLLER_TAG: v0.7.0
- name: Run compat tests (old controller + new client/exporter)
run: make e2e-compat-run COMPAT_TEST=old-controller
env:
CI: true
e2e-compat-old-client:
needs: changes
if: needs.changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Setup compat environment (old client v0.7.0)
run: make e2e-compat-setup COMPAT_SCENARIO=old-client
env:
CI: true
COMPAT_CLIENT_VERSION: "0.7.1"
- name: Run compat tests (new controller + old client/exporter)
run: make e2e-compat-run COMPAT_TEST=old-client
env:
CI: true