-
Notifications
You must be signed in to change notification settings - Fork 12
76 lines (70 loc) · 2.29 KB
/
integration-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
name: Build and Test
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Build
run: make build
- name: Create K8s Kind Cluster
uses: helm/[email protected]
with:
cluster_name: 'kind'
config: './etc/cluster.yaml'
- name: Load Docker Images
run: |
kind load docker-image hoptimator
kind load docker-image hoptimator-flink-runner
- name: Deploy Dev Environment
run: make deploy-dev-environment
- name: Deploy Hoptimator
run: make deploy
- name: Deploy Samples
run: make deploy-samples
- name: Wait for Readiness
run: kubectl wait pod hoptimator --for condition=Ready --timeout=10m
- name: Wait for Flink Jobs
run: |
i=0
while [ $i -ne 10 ]
do
kubectl wait flinkdeployments --all --for=jsonpath={.status.lifecycleState}=STABLE --timeout=1m && break || sleep 60
i=$(($i+1))
echo "No stable Flink jobs after $i tries..."
done
- name: Run Integration Tests
run: make integration-tests
- name: Capture Cluster State
if: always()
run: |
kubectl describe pods
kubectl describe deployments
kubectl describe kafkas -n kafka
kubectl describe flinkdeployments
kubectl describe subscriptions
- name: Capture Flink Job Logs
if: always()
run: |
kubectl logs $(kubectl get pods -l component=jobmanager -o name) --since=0s || echo "skipped."
kubectl logs $(kubectl get pods -l component=taskmanager -o name) --since=0s || echo "skipped."
- name: Capture Hoptimator Operator Logs
if: always()
run: kubectl logs $(kubectl get pods -l app=hoptimator-operator -o name)
- name: Capture Flink Operator Logs
if: always()
run: kubectl logs $(kubectl get pods -l app.kubernetes.io/name=flink-kubernetes-operator -o name)
- name: Capture Flink Job Logs
if: always()
run: kubectl logs $(kubectl get pods -l app.kubernetes.io/name=flink-kubernetes-operator -o name)