Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: simplify test cases #481

Merged
merged 9 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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/kind-action@v1.2.0

- 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/kind-action@v1.2.0

- 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
Loading