[FLINK-26142] Enable github actions and run unit tests
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..7b3c557
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,68 @@
+################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+################################################################################
+
+name: CI
+on:
+ push:
+ pull_request:
+jobs:
+ test_ci:
+ runs-on: ubuntu-latest
+ name: test_ci
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 11
+ uses: actions/setup-java@v2
+ with:
+ java-version: '11'
+ distribution: 'adopt'
+ - name: Build with Maven
+ run: mvn clean install
+ - name: Start minikube
+ uses: medyagh/setup-minikube@master
+ - name: Install cert-manager
+ run: |
+ kubectl get pods -A
+ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.yaml
+ kubectl -n cert-manager wait --all=true --for=condition=Ready --timeout=300s pod
+ - name: Build image
+ run: |
+ export SHELL=/bin/bash
+ export DOCKER_BUILDKIT=1
+ eval $(minikube -p minikube docker-env)
+ docker build -f ./Dockerfile -t flink-kubernetes-operator:ci-latest .
+ docker images
+ - name: Start the operator
+ run: |
+ helm install flink-operator helm/flink-operator --set image.repository=flink-kubernetes-operator --set image.tag=ci-latest
+ kubectl wait --for=condition=Available --timeout=120s deploy/flink-operator
+ kubectl get pods
+ - name: Tests in flink-kubernetes-operator
+ run: |
+ cd flink-kubernetes-operator
+ mvn integration-test -Dit.skip=false
+ cd ..
+ - name: Tests in flink-kubernetes-webhook
+ run: |
+ cd flink-kubernetes-webhook
+ mvn integration-test -Dit.skip=false
+ cd ..
+ - name: Stop the operator
+ run: |
+ helm uninstall flink-operator
+