Skip to content

feat: support clean old lifecycle before new update (#295) #505

feat: support clean old lifecycle before new update (#295)

feat: support clean old lifecycle before new update (#295) #505

Workflow file for this run

name: E2E
on:
pull_request:
branches:
- main
- release-*
push:
branches:
- main
- release-*
env:
GO_VERSION: '1.19'
KIND_VERSION: 'v0.14.0'
KIND_IMAGE: 'kindest/node:v1.22.2'
KIND_CLUSTER_NAME: 'e2e-test'
jobs:
CollaSet:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Cache Go Dependencies
uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
- name: Update Go Modules
run: |
go mod tidy
go mod download
- name: Setup Kind Cluster
uses: helm/[email protected]
with:
node_image: ${{ env.KIND_IMAGE }}
cluster_name: ${{ env.KIND_CLUSTER_NAME }}
config: ./test/e2e/scripts/kind-conf.yaml
version: ${{ env.KIND_VERSION }}
- name: Build Image
run: |
mkdir -p /tmp/kind
make kind-kube-config
make docker-build
make sync-kind-image
- name: Install Operating
run: |
set -ex
kubectl cluster-info
make deploy
for ((i=1;i<10;i++));
do
set +e
PODS=$(kubectl get pod -n kusionstack-system | grep -c '1/1')
set -e
if [ "$PODS" -eq 1 ]; then
break
fi
sleep 3
done
set -e
PODS=$(kubectl get pod -n kusionstack-system | grep -c '1/1')
if [ "$PODS" -eq 1 ]; then
echo "Wait for Kusionstack-manager ready successfully"
else
echo "Timeout to wait for Kusionstack-manager ready"
fi
- name: Run e2e Tests
run: |
make ginkgo
set -e
KUBECONFIG=/tmp/kind/kubeconfig.yaml ./bin/ginkgo -timeout 15m -v --focus='\[apps\] CollaSet' test/e2e
restartCount=$(kubectl get pod -n kusionstack-system -l control-plane=controller-manager --no-headers | awk '{print $4}')
if [ "${restartCount}" -eq "0" ];then
echo "Kusionstack-manager has not restarted"
else
kubectl get pod -n kusionstack-system -l control-plane=controller-manager --no-headers
echo "Kusionstack-manager has restarted, abort!!!"
kubectl get pod -n kusionstack-system --no-headers -l control-plane=controller-manager | awk '{print $1}' | xargs kubectl logs -p -n kusionstack-system
exit 1
fi
OperationJob:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Cache Go Dependencies
uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
- name: Update Go Modules
run: |
go mod tidy
go mod download
- name: Setup Kind Cluster
uses: helm/[email protected]
with:
node_image: ${{ env.KIND_IMAGE }}
cluster_name: ${{ env.KIND_CLUSTER_NAME }}
config: ./test/e2e/scripts/kind-conf.yaml
version: ${{ env.KIND_VERSION }}
- name: Setup Kube-config
run: |
mkdir -p /tmp/kind
make kind-kube-config
- name: Install Operating
run: |
set -ex
kubectl cluster-info
make docker-build
make sync-kind-image
make deploy
for ((i=1;i<10;i++));
do
set +e
PODS=$(kubectl get pod -n kusionstack-system | grep -c '1/1')
set -e
if [ "$PODS" -eq 1 ]; then
break
fi
sleep 3
done
set -e
PODS=$(kubectl get pod -n kusionstack-system | grep -c '1/1')
if [ "$PODS" -eq 1 ]; then
echo "Wait for Kusionstack-manager ready successfully"
else
echo "Timeout to wait for Kusionstack-manager ready"
fi
- name: Run e2e Tests
run: |
make ginkgo
set -e
KUBECONFIG=/tmp/kind/kubeconfig.yaml ./bin/ginkgo -timeout 15m -v --focus='\[apps\] OperationJob' test/e2e
- name: Check Operating Manager
run: |
restartCount=$(kubectl get pod -n kusionstack-system -l control-plane=controller-manager --no-headers | awk '{print $4}')
if [ "${restartCount}" -eq "0" ];then
echo "Kusionstack-manager has not restarted"
else
kubectl get pod -n kusionstack-system -l control-plane=controller-manager --no-headers
echo "Kusionstack-manager has restarted, abort!!!"
kubectl get pod -n kusionstack-system --no-headers -l control-plane=controller-manager | awk '{print $1}' | xargs kubectl logs -p -n kusionstack-system
exit 1
fi