You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/12/19 09:50:02 UTC
[camel-k] 03/10: Fix #921: add integration tests on Kind
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit adffd3943009bbb9377cf6c3da9bda5d0b1334e2
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Wed Dec 18 17:43:57 2019 +0100
Fix #921: add integration tests on Kind
---
.github/workflows/pr-kind.yml | 98 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/.github/workflows/pr-kind.yml b/.github/workflows/pr-kind.yml
new file mode 100644
index 0000000..6cfb391
--- /dev/null
+++ b/.github/workflows/pr-kind.yml
@@ -0,0 +1,98 @@
+#
+# 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: Kind Integration Tests PR
+
+on:
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v1
+ - name: Info
+ run: |
+ ls -lart
+ - name: Set Up Java
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+ - name: Set Go
+ uses: actions/setup-go@v1
+ with:
+ go-version: 1.13.x
+ - name: Get KinD (Kubernetes in Docker)
+ uses: engineerd/setup-kind@v0.1.0
+ with:
+ version: v0.6.1
+ skipClusterCreation: "true"
+ - name: Start KinD Cluster with Internal Registry
+ run: |
+ CLUSTER_NAME="kind"
+ REGISTRY_CONTAINER_NAME='kind-registry'
+ REGISTRY_PORT='5000'
+ docker run -d -p "${REGISTRY_PORT}:5000" --restart=always --name "${REGISTRY_CONTAINER_NAME}" registry:2
+ REGISTRY_IP=$(docker inspect --format '{{.NetworkSettings.IPAddress }}' "${REGISTRY_CONTAINER_NAME}")
+ cat <<EOF | kind create cluster --config=-
+ kind: Cluster
+ apiVersion: kind.x-k8s.io/v1alpha4
+ containerdConfigPatches:
+ - |-
+ [plugins."io.containerd.grpc.v1.cri".registry.mirrors."${REGISTRY_IP}:${REGISTRY_PORT}"]
+ endpoint = ["http://${REGISTRY_IP}:${REGISTRY_PORT}"]
+ EOF
+ for node in $(kind get nodes --name ${CLUSTER_NAME}); do
+ docker exec "${node}" sh -c "echo $(docker inspect --format '{{.NetworkSettings.IPAddress }}' "${REGISTRY_CONTAINER_NAME}") registry >> /etc/hosts"
+ done
+ - name: Info
+ run: |
+ kubectl cluster-info
+ kubectl describe nodes
+ - name: Run IT
+ run: |
+ # Compute registry parameters
+ CAMEL_K_REGISTRY=$(docker inspect --format '{{.NetworkSettings.IPAddress }}' "kind-registry")
+ echo "Using registry ${CAMEL_K_REGISTRY}:5000"
+
+ echo "Build project"
+ make build-kamel
+ echo "Adding maven artifacts to the image context"
+ make PACKAGE_ARTIFACTS_STRATEGY=download package-artifacts
+ echo "Copying binary file to docker dir"
+ mkdir -p ./build/_output/bin
+ cp ./kamel ./build/_output/bin/
+ echo "Building the images"
+ export LOCAL_IMAGE=localhost:5000/apache/camel-k:$(make version)
+ export IMAGE=${CAMEL_K_REGISTRY}:5000/apache/camel-k:$(make version)
+ docker build -t "${LOCAL_IMAGE}" -f build/Dockerfile .
+ docker push ${LOCAL_IMAGE}
+ echo "installing camel k cluster resources"
+ ./kamel install --cluster-setup
+
+ # Then run integration tests
+ export KAMEL_INSTALL_REGISTRY=${CAMEL_K_REGISTRY}:5000
+ export KAMEL_INSTALL_REGISTRY_INSECURE=true
+ export KAMEL_INSTALL_OPERATOR_IMAGE=${IMAGE}
+ export CAMEL_K_TEST_IMAGE_NAME=${CAMEL_K_REGISTRY}:5000/apache/camel-k
+ export CAMEL_K_TEST_IMAGE_VERSION=$(make version)
+ make test-integration