generated from kyma-project/template-repository
-
Notifications
You must be signed in to change notification settings - Fork 7
140 lines (118 loc) · 5.08 KB
/
e2e.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
name: E2E Test
on:
pull_request:
branches:
- main
- "release-*"
paths-ignore:
- "docs/**"
- "**.md"
- "sec-scanners-config.yaml"
env:
EPP_IMAGE: europe-docker.pkg.dev/kyma-project/dev/eventing-publisher-proxy:PR-${{ github.event.number }}
jobs:
e2e-nats:
runs-on: ubuntu-latest
steps:
- name: Checkout EPP repository
uses: actions/checkout@v4
with:
path: main
- name: Checkout EM repository
uses: actions/checkout@v4
with:
repository: kyma-project/eventing-manager
path: eventing-manager
- name: Setup Go via go.mod
uses: actions/setup-go@v5
with:
go-version-file: main/go.mod
- run: go version
- name: Install k3d tools
run: |
make -C eventing-manager/hack/ci/ install-k3d-tools
- name: Install Kyma CLI & setup k3d cluster using Kyma CLI
run: |
make -C eventing-manager kyma
make -C main/hack/ci/ create-k3d
kubectl version
kubectl cluster-info
- name: Create Namespace
run: |
kubectl create ns kyma-system
- name: Deploy NATS Manager
run: |
kubectl apply -f https://github.com/kyma-project/nats-manager/releases/latest/download/nats-manager.yaml
kubectl apply -f https://github.com/kyma-project/nats-manager/releases/latest/download/nats-default-cr.yaml
echo "Using NATS Manager image:"
kubectl get -n kyma-system deployment nats-manager -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
- name: Deploy Eventing Manager
run: |
kubectl apply -f https://github.com/kyma-project/eventing-manager/releases/latest/download/eventing-manager.yaml
kubectl apply -f https://raw.githubusercontent.com/kyma-project/eventing-manager/main/config/samples/default_nats.yaml
echo "Using Eventing Manager image:"
kubectl get -n kyma-system deployment eventing-manager -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
- name: Wait for build job - 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: Wait for build job - Setup python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Wait for build job - 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 }}/eventing-publisher-proxy
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
- name: Setup Eventing Manager with new EPP image
run: |
kubectl get deployment eventing-manager -n kyma-system -o=json |
jq --arg new_image "$EPP_IMAGE" \
'.spec.template.spec.containers[0].env |= map(if .name == "PUBLISHER_IMAGE" then .value = $new_image else . end)' |
kubectl apply -f -
kubectl rollout status deployment/eventing-manager -n kyma-system --timeout=120s
echo "Waiting for 60 seconds to give the eventing-manager time to provision EPP"
sleep 60
kubectl rollout status deployment/eventing-publisher-proxy -n kyma-system --timeout=120s
- name: Check if EPP image successfully applied
run: |
DEPLOYMENT_IMAGE=$(kubectl get deployment -n kyma-system eventing-publisher-proxy -o=jsonpath='{$.spec.template.spec.containers[:1].image}')
if [ "$DEPLOYMENT_IMAGE" != "$EPP_IMAGE" ]; then
echo "EPP images do not match."
echo "Desired EPP image: $EPP_IMAGE. Image in EPP deployment: $DEPLOYMENT_IMAGE"
echo "Updating Eventing Manager with new image failed."
exit 1
else
echo "EPP image update successful."
fi
- name: Setup subscriptions for testing
run: |
make -C eventing-manager e2e-eventing-setup
- name: Test Eventing
run: |
make -C eventing-manager e2e-eventing
- name: Cleanup test resources
run: |
make -C eventing-manager e2e-cleanup
- name: On error get NATS CR
if: failure()
run: |
kubectl get nats -n kyma-system -o yaml
- name: On error get Eventing CR
if: failure()
run: |
kubectl get eventing -n kyma-system -o yaml