generated from kyma-project/template-repository
-
Notifications
You must be signed in to change notification settings - Fork 13
202 lines (164 loc) · 5.34 KB
/
pull-e2e-test.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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
name: pull-e2e-test
env:
DOCKER_IMAGE: europe-docker.pkg.dev/kyma-project/dev/nats-manager:PR-${{ github.event.number }}
E2E_LOG_LEVEL: debug
KYMA_STABILITY: "unstable"
KYMA: "./hack/kyma"
on:
pull_request:
branches: ["main"]
paths-ignore:
- "docs/**"
- "**.md"
- "sec-scanners-config.yaml"
jobs:
wait-for-build-job:
name: Wait for build job
runs-on: ubuntu-latest
steps:
- name: Checkout eventing-tools
uses: actions/checkout@v4
with:
repository: 'kyma-project/eventing-tools'
path: 'kyma-project/eventing-tools'
ref: main
sparse-checkout: 'scripts/wait-for-commit-check'
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install requirements
run: |
pip install -r $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/requirements.txt
- name: Wait for build job
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPOSITORY_FULL_NAME: ${{ github.repository_owner }}/nats-manager
GIT_REF: "${{ github.event.pull_request.head.sha }}" # Note: 'github.event.pull_request.head.sha' is not same as 'github.sha' on pull requests.
# The re-usable image-builder workflow from neighbors appends the "Build image" suffix to the check run name.
GIT_CHECK_RUN_NAME: "build / Build image"
INTERVAL: 60
TIMEOUT: 900
run: |
python $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/run.py
e2e:
name: e2e
needs: [ wait-for-build-job ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache Go dependencies
uses: actions/setup-go@v5
with:
go-version-file: "./go.mod"
check-latest: true
cache-dependency-path: "./go.sum"
- run: go version
- name: Install k3d tools
run: |
make -C hack/ci/ install-k3d-tools
- name: Install Kyma CLI & setup k3d cluster using kyma CLI
run: |
make kyma
make -C hack/ci/ create-k3d
kubectl version
kubectl cluster-info
- name: Install the NATS CRD on the cluster
run: |
make install IMG=$DOCKER_IMAGE
- name: Create kyma-system namespace
run: |
kubectl create namespace kyma-system
- name: Deploy the controller to the cluster
run: |
make deploy IMG=$DOCKER_IMAGE
- name: Setup and test NATS CR
run: |
make e2e-setup
- name: Run NATS bench
run: |
go install github.com/nats-io/natscli/nats@latest
export PATH=$HOME/go/bin:$PATH
make e2e-bench
- name: Test NATS-server
run: |
make e2e-nats-server
- name: Cleanup NATS CR
run: |
make e2e-cleanup
# the following steps only run on failure to help finding the cause of the failure
- name: List CRDs
if: failure()
run: |
kubectl get crd
- name: List Namespaces
if: failure()
run: |
kubectl get namespaces
- name: List StatefulSets
if: failure()
run: |
kubectl get sts --all-namespaces
- name: List Pods
if: failure()
run: |
kubectl get po --all-namespaces
- name: List PVCs
if: failure()
run: |
kubectl get pvc --all-namespaces
- name: List NATS CR
if: failure()
run: |
kubectl get nats --all-namespaces
e2e-upgrade: # This job tests the upgrade of NATS module from latest image of the main branch to the current commit.
name: e2e-upgrade
needs: [ wait-for-build-job ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache Go dependencies
uses: actions/setup-go@v5
with:
go-version-file: "./go.mod"
check-latest: true
cache-dependency-path: "./go.sum"
- run: go version
- name: Install k3d tools
run: |
make -C hack/ci/ install-k3d-tools
- name: Install Kyma CLI & setup k3d cluster using kyma CLI
run: |
make kyma
make -C hack/ci/ create-k3d
kubectl version
kubectl cluster-info
- name: Install latest NATS manager from main branch
run: |
make -C hack/ci/ create-kyma-system-ns
make deploy IMG=europe-docker.pkg.dev/kyma-project/prod/nats-manager:main
- name: Setup & test NATS CR
run: |
make e2e-setup
- name: Install the new NATS manager from current commit
run: |
make deploy IMG=${DOCKER_IMAGE}
- name: Wait for new changes to be reflected
# Waits for NATS-manager image to be updated and NATS CR readiness.
run: |
export MANAGER_IMAGE=${DOCKER_IMAGE}
make e2e-setup
- name: Run NATS bench
run: |
go install github.com/nats-io/natscli/nats@latest
export PATH=$HOME/go/bin:$PATH
make e2e-bench
- name: Test NATS-server
run: |
make e2e-nats-server
- name: Cleanup NATS CR
run: |
make e2e-cleanup