From 5fc2e83f9ffc3ed1520a01b2cc0eb6d9d8f02ac5 Mon Sep 17 00:00:00 2001 From: barnettZQG Date: Tue, 21 Jun 2022 17:04:01 +0800 Subject: [PATCH] Chore: add the independent e2e test task Signed-off-by: barnettZQG --- .github/workflows/e2e-1.19.yaml | 4 +- .github/workflows/e2e-1.23.yaml | 2 +- .github/workflows/e2e-gateway.yaml | 83 ++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/e2e-gateway.yaml diff --git a/.github/workflows/e2e-1.19.yaml b/.github/workflows/e2e-1.19.yaml index 723b709..4d2c240 100644 --- a/.github/workflows/e2e-1.19.yaml +++ b/.github/workflows/e2e-1.19.yaml @@ -95,7 +95,7 @@ jobs: export KUBECONFIG=/home/runner/.kube/config make ginkgo set +e - ./bin/ginkgo -timeout 60m -v --focus='\[rollouts\] (Rollout)' test/e2e + ./bin/ginkgo -timeout 60m -v --skip='Canary rollout with Gateway API' --focus='\[rollouts\] (Rollout)' test/e2e retVal=$? # kubectl get pod -n kruise-rollout --no-headers | grep manager | awk '{print $1}' | xargs kubectl logs -n kruise-rollout restartCount=$(kubectl get pod -n kruise-rollout --no-headers | awk '{print $4}') @@ -107,4 +107,4 @@ jobs: kubectl get pod -n kruise-rollout --no-headers| awk '{print $1}' | xargs kubectl logs -p -n kruise-rollout exit 1 fi - exit $retVal \ No newline at end of file + exit $retVal diff --git a/.github/workflows/e2e-1.23.yaml b/.github/workflows/e2e-1.23.yaml index 02afd35..44f3a87 100644 --- a/.github/workflows/e2e-1.23.yaml +++ b/.github/workflows/e2e-1.23.yaml @@ -95,7 +95,7 @@ jobs: export KUBECONFIG=/home/runner/.kube/config make ginkgo set +e - ./bin/ginkgo -timeout 60m -v --focus='\[rollouts\] (Rollout)' test/e2e + ./bin/ginkgo -timeout 60m -v --skip='Canary rollout with Gateway API' --focus='\[rollouts\] (Rollout)' test/e2e retVal=$? # kubectl get pod -n kruise-rollout --no-headers | grep manager | awk '{print $1}' | xargs kubectl logs -n kruise-rollout restartCount=$(kubectl get pod -n kruise-rollout --no-headers | awk '{print $4}') diff --git a/.github/workflows/e2e-gateway.yaml b/.github/workflows/e2e-gateway.yaml new file mode 100644 index 0000000..7fd32f7 --- /dev/null +++ b/.github/workflows/e2e-gateway.yaml @@ -0,0 +1,83 @@ +name: e2e-gateway + +on: + push: + branches: + - master + - release-* + pull_request: {} + workflow_dispatch: {} + +env: + # Common versions + GO_VERSION: '1.17' + KIND_IMAGE: 'kindest/node:v1.23.3' + KIND_CLUSTER_NAME: 'ci-testing' + +jobs: + + rollout: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: ${{ env.GO_VERSION }} + - name: Setup Kind Cluster + uses: helm/kind-action@v1.2.0 + with: + node_image: ${{ env.KIND_IMAGE }} + cluster_name: ${{ env.KIND_CLUSTER_NAME }} + config: ./test/kind-conf.yaml + - name: Build image + run: | + export IMAGE="openkruise/kruise-rollout:e2e-${GITHUB_RUN_ID}" + docker build --pull --no-cache . -t $IMAGE + kind load docker-image --name=${KIND_CLUSTER_NAME} $IMAGE || { echo >&2 "kind not installed or error loading image: $IMAGE"; exit 1; } + - name: Install Kruise Rollout + run: | + set -ex + kubectl cluster-info + IMG=openkruise/kruise-rollout:e2e-${GITHUB_RUN_ID} ./scripts/deploy_kind.sh + for ((i=1;i<10;i++)); + do + set +e + PODS=$(kubectl get pod -n kruise-rollout | grep '1/1' | wc -l) + set -e + if [ "$PODS" -eq "1" ]; then + break + fi + sleep 3 + done + set +e + PODS=$(kubectl get pod -n kruise-rollout | grep '1/1' | wc -l) + kubectl get node -o yaml + kubectl get all -n kruise-rollout -o yaml + set -e + if [ "$PODS" -eq "1" ]; then + echo "Wait for kruise-rollout ready successfully" + else + echo "Timeout to wait for kruise-rollout ready" + exit 1 + fi + - name: Run E2E Tests + run: | + export KUBECONFIG=/home/runner/.kube/config + make ginkgo + set +e + ./bin/ginkgo -timeout 60m -v --focus='Canary rollout with Gateway API' test/e2e + retVal=$? + # kubectl get pod -n kruise-rollout --no-headers | grep manager | awk '{print $1}' | xargs kubectl logs -n kruise-rollout + restartCount=$(kubectl get pod -n kruise-rollout --no-headers | awk '{print $4}') + if [ "${restartCount}" -eq "0" ];then + echo "Kruise-rollout has not restarted" + else + kubectl get pod -n kruise-rollout --no-headers + echo "Kruise-rollout has restarted, abort!!!" + kubectl get pod -n kruise-rollout --no-headers| awk '{print $1}' | xargs kubectl logs -p -n kruise-rollout + exit 1 + fi + exit $retVal \ No newline at end of file