Skip to content

Commit

Permalink
test: simplify test cases (#481)
Browse files Browse the repository at this point in the history
test: simplify and reduce test cases

Signed-off-by: zhuwenxing <[email protected]>
  • Loading branch information
zhuwenxing authored Dec 17, 2024
1 parent f497caf commit 6b29a3a
Show file tree
Hide file tree
Showing 11 changed files with 259 additions and 224 deletions.
6 changes: 4 additions & 2 deletions .github/mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@ pull_request_rules:

- name: Test passed for code changed-main
conditions:
- base=main
- check-success=Test
- check-success=test-backup-restore-cross-version
- check-success=test-backup-restore-after-upgrade
- check-success=test-backup-restore-cli
- check-success=test-backup-restore-api
actions:
label:
add:
Expand Down
217 changes: 38 additions & 179 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ jobs:
deploy_tools: [docker-compose]
milvus_mode: [standalone]
another_milvus_mode: [standalone]
source_image_tag: [2.2.0-latest, 2.3-latest]
source_image_tag: [2.3-latest, 2.4-latest]
target_image_tag: [master-latest, 2.4-latest]
# mq_type: [pulsar, kafka] # TODO: add pulsar and kafka
exclude:
- source_image_tag: 2.4-latest
target_image_tag: 2.4-latest

steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -64,7 +66,8 @@ jobs:
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
yq -i '.services.standalone.image="milvusdb/milvus:${{ matrix.source_image_tag }}"' docker-compose.yml
tag=$(python ../../scripts/get_image_tag_by_short_name.py --tag ${{ matrix.source_image_tag }}) && echo $tag
yq -i ".services.standalone.image=\"milvusdb/milvus:${tag}\"" docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
Expand Down Expand Up @@ -120,7 +123,8 @@ jobs:
shell: bash
working-directory: deployment/${{ matrix.another_milvus_mode }}
run: |
yq -i '.services.standalone.image="milvusdb/milvus:${{ matrix.target_image_tag }}"' docker-compose.yml
tag=$(python ../../scripts/get_image_tag_by_short_name.py --tag ${{ matrix.target_image_tag }}) && echo $tag
yq -i ".services.standalone.image=\"milvusdb/milvus:${tag}\"" docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
Expand Down Expand Up @@ -159,9 +163,11 @@ jobs:
deploy_tools: [docker-compose]
milvus_mode: [standalone]
another_milvus_mode: [standalone]
source_image_tag: [v2.3.12, 2.3-latest]
target_image_tag: [master-latest, 2.3-latest]
# mq_type: [pulsar, kafka] # TODO: add pulsar and kafka
source_image_tag: [v2.4.17, 2.4-latest]
target_image_tag: [master-latest, 2.4-latest]
exclude:
- source_image_tag: 2.4-latest
target_image_tag: 2.4-latest

steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -199,7 +205,8 @@ jobs:
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
yq -i '.services.standalone.image="milvusdb/milvus:${{ matrix.source_image_tag }}"' docker-compose.yml
tag=$(python ../../scripts/get_image_tag_by_short_name.py --tag ${{ matrix.source_image_tag }}) && echo $tag
yq -i ".services.standalone.image=\"milvusdb/milvus:${tag}\"" docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
Expand All @@ -216,7 +223,8 @@ jobs:
working-directory: deployment/${{ matrix.another_milvus_mode }}
run: |
docker-compose down
yq -i '.services.standalone.image="milvusdb/milvus:${{ matrix.target_image_tag }}"' docker-compose.yml
tag=$(python ../../scripts/get_image_tag_by_short_name.py --tag ${{ matrix.target_image_tag }}) && echo $tag
yq -i ".services.standalone.image=\"milvusdb/milvus:${tag}\"" docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
Expand Down Expand Up @@ -246,8 +254,9 @@ jobs:
fail-fast: false
matrix:
deploy_tools: [docker-compose]
milvus_mode: [standalone, cluster]
another_milvus_mode: [standalone, cluster]
milvus_mode: [standalone]
another_milvus_mode: [standalone]
image_tag: [master-latest]
# mq_type: [pulsar, kafka] # TODO: add pulsar and kafka

steps:
Expand Down Expand Up @@ -286,6 +295,8 @@ jobs:
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
tag=$(python ../../scripts/get_image_tag_by_short_name.py --tag ${{ matrix.image_tag }}) && echo $tag
yq -i ".services.standalone.image=\"milvusdb/milvus:${tag}\"" docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
Expand Down Expand Up @@ -371,135 +382,6 @@ jobs:
run: |
python example/verify_data.py
test-backup-restore-with-custom-config:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
deploy_tools: [helm]
milvus_mode: [standalone]
milvus_minio_rootpath: ["", "file"]
backup_bucket_name: ["milvus-backup", "milvus-bucket"]

steps:
- uses: actions/checkout@v3

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: pip

- uses: actions/setup-go@v3
with:
go-version: '1.18.0'
cache: true

- name: Creating kind cluster
if: ${{ matrix.deploy_tools == 'helm' }}
uses: helm/[email protected]

- name: Modify Milvus config

timeout-minutes: 15
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
yq -i '.minio.rootPath = "${{ matrix.milvus_minio_rootpath }}"' values.yaml
- name: Build
timeout-minutes: 5
shell: bash
run: |
if [ ${{ matrix.deploy_tools }} == 'helm' ]; then
yq -i '.minio.bucketName = "milvus-bucket"' configs/backup.yaml
yq -i '.minio.rootPath = "${{ matrix.milvus_minio_rootpath }}"' configs/backup.yaml
yq -i '.minio.backupBucketName = "${{ matrix.backup_bucket_name }}"' configs/backup.yaml
fi
yq -i '.log.level = "debug"' configs/backup.yaml
cat configs/backup.yaml || true
go get
go build
- name: Install dependency

timeout-minutes: 5
working-directory: tests
shell: bash
run: |
pip install -r requirements.txt --trusted-host https://test.pypi.org
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- name: Milvus deploy

timeout-minutes: 15
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
if [ ${{ matrix.deploy_tools}} == "helm" ]; then
helm repo add milvus https://milvus-io.github.io/milvus-helm
helm repo update
helm install --wait --timeout 600s milvus-backup milvus/milvus -f values.yaml
kubectl get pods
kubectl port-forward service/milvus-backup 19530 >/dev/null 2>&1 &
kubectl port-forward service/milvus-backup-minio 9000 >/dev/null 2>&1 &
sleep 10
nc -vz 127.0.0.1 19530
nc -vz 127.0.0.1 9000
sleep 10
kubectl get pods -n default | grep milvus-backup
fi
if [ ${{ matrix.deploy_tools}} == "docker-compose" ]; then
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
fi
- name: Prepare data
timeout-minutes: 5
shell: bash
run: |
python example/prepare_data.py
- name: Backup
timeout-minutes: 5
shell: bash
run: |
./milvus-backup check
./milvus-backup list
./milvus-backup create -n my_backup
./milvus-backup list
- name: Restore backup
timeout-minutes: 5
shell: bash
run: |
./milvus-backup restore -n my_backup -s _recover
- name: Verify data
timeout-minutes: 5
shell: bash
run: |
python example/verify_data.py
- name: Export logs
if: ${{ always() }}
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
if [ ${{ matrix.deploy_tools}} == "helm" ]; then
bash ../../scripts/export_log_k8s.sh default milvus-backup logs
fi
if [ ${{ matrix.deploy_tools}} == "docker-compose" ]; then
bash ../../scripts/export_log_docker.sh logs
fi
- name: Upload logs
if: ${{ ! success() }}
uses: actions/upload-artifact@v4
with:
name: custom-config-${{ matrix.deploy_tools }}-${{ matrix.milvus_mode }}
path: |
./logs
./server.log
/tmp/ci_logs
deployment/${{ matrix.milvus_mode }}/logs
test-backup-restore-api:
runs-on: ubuntu-latest
needs: test-backup-restore-cli
Expand All @@ -508,10 +390,10 @@ jobs:
matrix:
deploy_tools: [docker-compose]
milvus_mode: [standalone]
image_tag: [master-latest, 2.3-latest, 2.4-latest]
image_tag: [master-latest, 2.4-latest]
case_tag: [L0, L1, L2, MASTER]
exclude:
- image_tag: 2.3-latest
- image_tag: 2.4-latest
case_tag: MASTER

steps:
Expand All @@ -528,19 +410,10 @@ jobs:
go-version: '1.18.0'
cache: true

- name: Creating kind cluster
if: ${{ matrix.deploy_tools == 'helm' }}
uses: helm/[email protected]

- name: Build
timeout-minutes: 5
shell: bash
run: |
if [ ${{ matrix.deploy_tools }} == 'helm' ]; then
yq -i '.minio.bucketName = "milvus-bucket"' configs/backup.yaml
yq -i '.minio.backupBucketName = "milvus-bucket"' configs/backup.yaml
yq -i '.minio.rootPath = "file"' configs/backup.yaml
fi
yq -i '.log.level = "debug"' configs/backup.yaml
cat configs/backup.yaml || true
go get
Expand All @@ -563,28 +436,13 @@ jobs:
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
if [ ${{ matrix.deploy_tools}} == "helm" ]; then
helm repo add milvus https://milvus-io.github.io/milvus-helm
helm repo update
helm install --wait --timeout 600s milvus-backup milvus/milvus -f values.yaml
kubectl get pods
kubectl port-forward service/milvus-backup 19530 >/dev/null 2>&1 &
kubectl port-forward service/milvus-backup-minio 9000 >/dev/null 2>&1 &
sleep 10
nc -vz 127.0.0.1 19530
nc -vz 127.0.0.1 9000
sleep 10
kubectl get pods -n default | grep milvus-backup
fi
if [ ${{ matrix.deploy_tools}} == "docker-compose" ]; then
yq -i '.services.standalone.image="milvusdb/milvus:${{ matrix.image_tag }}"' docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
fi
tag=$(python ../../scripts/get_image_tag_by_short_name.py --tag ${{ matrix.image_tag }}) && echo $tag
yq -i ".services.standalone.image=\"milvusdb/milvus:${tag}\"" docker-compose.yml
docker-compose up -d
bash ../../scripts/check_healthy.sh
docker-compose ps -a
- name: Start server
- name: Start backup server
timeout-minutes: 5
shell: bash
working-directory: build/deployment
Expand All @@ -605,28 +463,29 @@ jobs:
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
docker-compose ps -a || true
kubectl get pods -n default || true
- name: Export logs
- name: Export Milvus logs
if: ${{ always() }}
shell: bash
working-directory: deployment/${{ matrix.milvus_mode }}
run: |
if [ ${{ matrix.deploy_tools}} == "helm" ]; then
bash ../../scripts/export_log_k8s.sh default milvus-backup logs
fi
if [ ${{ matrix.deploy_tools}} == "docker-compose" ]; then
bash ../../scripts/export_log_docker.sh logs
fi
- name: Export Backup Server logs
if: ${{ always() }}
shell: bash
working-directory: build/deployment
run: |
docker-compose logs > /tmp/ci_logs/backup_server.log 2>&1 || true
- name: Upload logs
if: ${{ ! success() }}
uses: actions/upload-artifact@v4
with:
name: api-test-logs-${{ matrix.deploy_tools }}-${{ matrix.milvus_mode }}-${{ matrix.image_tag }}-${{ matrix.case_tag }}
path: |
./logs
./server.log
/tmp/ci_logs
deployment/${{ matrix.milvus_mode }}/logs
Loading

0 comments on commit 6b29a3a

Please sign in to comment.