Cloud E2E Engine Test on Env:idc1:idc:0.9 elasticsearch,qdrant,zookeeper,tdsql,influxdb,rabbitmq,loki,victoria-metrics,rocketmq,greatdb,postgresql,kafka,kingbase,gaussdb,tdengine,redis,damengdb,starrocks,vastbase,nebula,mongodb,minio,tidb,oceanbase-proxy,mssql,clickhouse,etcd,mysql,oceanbase Ref:release-2.0 #349
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Cloud E2E Engine | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| TEST_ENGINES: | |
| description: "The specify version of GO (e.g. mysql,postgresql,redis)" | |
| type: string | |
| required: false | |
| default: 'mysql' | |
| CLOUD_ENV_NAME: | |
| description: "The cloud env name of test (e.g. dev) " | |
| type: string | |
| required: false | |
| default: 'dev' | |
| CLOUD_BRANCH: | |
| description: "The cloud branch name (e.g. main) " | |
| type: string | |
| required: false | |
| default: 'main' | |
| APECD_REF: | |
| description: "The branch name of apecloud-cd" | |
| type: string | |
| required: false | |
| default: 'main' | |
| CURRENT_VERSION: | |
| description: "The current release version (e.g. v0.30) " | |
| type: string | |
| required: false | |
| default: '' | |
| TEST_INDEX: | |
| description: "Test index" | |
| type: string | |
| required: false | |
| default: '' | |
| CLOUD_TEST_ENV: | |
| description: "The cloud test env" | |
| type: string | |
| required: false | |
| default: '' | |
| CLOUD_TEST_KB_VERSION: | |
| description: "The cloud test kubeblocks version" | |
| type: string | |
| required: false | |
| default: '' | |
| workflow_call: | |
| inputs: | |
| TEST_ENGINES: | |
| description: "The specify version of GO (e.g. mysql,postgresql,redis)" | |
| type: string | |
| required: false | |
| default: 'mysql' | |
| CLOUD_ENV_NAME: | |
| description: "The cloud env name of test (e.g. dev) " | |
| type: string | |
| required: false | |
| default: 'dev' | |
| CLOUD_BRANCH: | |
| description: "The cloud branch name (e.g. main) " | |
| type: string | |
| required: false | |
| default: 'main' | |
| APECD_REF: | |
| description: "The branch name of apecloud-cd" | |
| type: string | |
| required: false | |
| default: 'main' | |
| CURRENT_VERSION: | |
| description: "The current release version (e.g. v0.30) " | |
| type: string | |
| required: false | |
| default: '' | |
| TEST_INDEX: | |
| description: "Test index" | |
| type: string | |
| required: false | |
| default: '' | |
| CLOUD_TEST_ENV: | |
| description: "The cloud test env" | |
| type: string | |
| required: false | |
| default: '' | |
| CLOUD_TEST_KB_VERSION: | |
| description: "The cloud test kubeblocks version" | |
| type: string | |
| required: false | |
| default: '' | |
| run-name: Cloud E2E Engine Test on Env:${{ inputs.CLOUD_ENV_NAME }}:${{ inputs.CLOUD_TEST_ENV }}:${{ inputs.CLOUD_TEST_KB_VERSION }} ${{ inputs.TEST_ENGINES }} Ref:${{ inputs.CLOUD_BRANCH }} | |
| env: | |
| ACK_KUBECONFIG_DEV: ${{ secrets.ACK_KUBECONFIG_DEV }} | |
| ACK_KUBECONFIG_DEMO: ${{ secrets.ACK_KUBECONFIG_DEMO }} | |
| IDC_KUBECONFIG: ${{ secrets.IDC_KUBECONFIG }} | |
| IDC_KUBECONFIG_1: ${{ secrets.IDC_KUBECONFIG_1 }} | |
| IDC_KUBECONFIG_2: ${{ secrets.IDC_KUBECONFIG_2 }} | |
| IDC_KUBECONFIG_4: ${{ secrets.IDC_KUBECONFIG_4 }} | |
| ACK_KUBECONFIG_PROD: ${{ secrets.ACK_KUBECONFIG_PROD }} | |
| ACK_KUBECONFIG_INTL_PROD: ${{ secrets.ACK_KUBECONFIG_INTL_PROD }} | |
| GH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
| jobs: | |
| get-test-engine: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| test-engines: ${{ steps.get_test_engine.outputs.test-engines }} | |
| test-engines-all: ${{ steps.get_test_engine.outputs.test-engines-all }} | |
| cloud-branch: ${{ steps.get_test_engine.outputs.cloud-branch }} | |
| cloud-env-name: ${{ steps.get_test_engine.outputs.cloud-env-name }} | |
| current-version: ${{ steps.get_test_engine.outputs.current-version }} | |
| steps: | |
| - name: Get test engine | |
| id: get_test_engine | |
| run: | | |
| TEST_INDEX="${{ inputs.TEST_INDEX }}" | |
| TEST_ENGINES="${{ inputs.TEST_ENGINES }}" | |
| if [[ -z "$TEST_ENGINES" ]]; then | |
| TEST_ENGINES="mysql" | |
| fi | |
| test_engines="" | |
| test_engines_all="" | |
| test_engines_tmp="" | |
| engine_index=0 | |
| test_job_index=0 | |
| for engine_tmp in $(echo "${TEST_ENGINES}" | sed 's/,/ /g' ); do | |
| engine_index=$(( engine_index + 1 )) | |
| if [[ -z "${test_engines_tmp}" ]]; then | |
| test_engines_tmp="${engine_tmp}" | |
| else | |
| test_engines_tmp="${test_engines_tmp},${engine_tmp}" | |
| fi | |
| KB_CLOUD_TEST_ENGINES_PRE="${{ vars.KB_CLOUD_TEST_ENGINES_PRE }}" | |
| if [[ -z "${KB_CLOUD_TEST_ENGINES_PRE}" ]]; then | |
| KB_CLOUD_TEST_ENGINES_PRE=5 | |
| fi | |
| if [[ $(( engine_index % ${KB_CLOUD_TEST_ENGINES_PRE} )) == 0 ]]; then | |
| test_job_index=$(( test_job_index + 1 )) | |
| if [[ -n "${TEST_INDEX}" && "${TEST_INDEX}" != "7" && "${TEST_INDEX}" != "${test_job_index}" ]]; then | |
| echo "TEST_INDEX:${TEST_INDEX} not equal to test job index:${test_job_index}, Skip test." | |
| test_engines_tmp="" | |
| continue | |
| fi | |
| test_job_index_tmp=$(printf "%02d" $test_job_index) | |
| if [[ -z "${test_engines}" ]]; then | |
| test_engines_all="${test_engines_tmp}|${test_job_index_tmp}" | |
| test_engines="{\"test-engine\":\"${test_engines_tmp}\",\"test-job-index\":\"${test_job_index_tmp}\"}" | |
| else | |
| test_engines_all="${test_engines_all}##${test_engines_tmp}|${test_job_index_tmp}" | |
| test_engines="${test_engines},{\"test-engine\":\"${test_engines_tmp}\",\"test-job-index\":\"${test_job_index_tmp}\"}" | |
| fi | |
| test_engines_tmp="" | |
| fi | |
| done | |
| if [[ -n "${test_engines_tmp}" ]]; then | |
| test_job_index=$(( test_job_index + 1 )) | |
| if [[ -n "${TEST_INDEX}" && "${TEST_INDEX}" != "7" && "${TEST_INDEX}" != "${test_job_index}" ]]; then | |
| echo "TEST_INDEX:${TEST_INDEX} not equal to test job index:${test_job_index}, Skip test." | |
| else | |
| test_job_index_tmp=$(printf "%02d" $test_job_index) | |
| if [[ -z "${test_engines}" ]]; then | |
| test_engines_all="${test_engines_tmp}|${test_job_index_tmp}" | |
| test_engines="{\"test-engine\":\"${test_engines_tmp}\",\"test-job-index\":\"${test_job_index_tmp}\"}" | |
| else | |
| test_engines_all="${test_engines_all}##${test_engines_tmp}|${test_job_index_tmp}" | |
| test_engines="${test_engines},{\"test-engine\":\"${test_engines_tmp}\",\"test-job-index\":\"${test_job_index_tmp}\"}" | |
| fi | |
| fi | |
| fi | |
| echo "${test_engines}" | |
| echo "${test_engines_all}" | |
| echo "test-engines={\"include\":[${test_engines}]}" >> $GITHUB_OUTPUT | |
| echo test-engines-all="${test_engines_all}" >> $GITHUB_OUTPUT | |
| CLOUD_BRANCH="${{ inputs.CLOUD_BRANCH }}" | |
| if [[ -z "$CLOUD_BRANCH" ]]; then | |
| CLOUD_BRANCH="main" | |
| fi | |
| echo cloud-branch="$CLOUD_BRANCH" >> $GITHUB_OUTPUT | |
| CLOUD_ENV_NAME="${{ inputs.CLOUD_ENV_NAME }}" | |
| if [[ -z "$CLOUD_ENV_NAME" ]]; then | |
| CLOUD_ENV_NAME="dev" | |
| fi | |
| echo cloud-env-name="$CLOUD_ENV_NAME" >> $GITHUB_OUTPUT | |
| CURRENT_VERSION="${{ inputs.CURRENT_VERSION }}" | |
| if [[ -n "${CURRENT_VERSION}" ]]; then | |
| if [[ "${CURRENT_VERSION}" != "v"* ]]; then | |
| CURRENT_VERSION="v${CURRENT_VERSION}" | |
| fi | |
| fi | |
| echo current-version="$CURRENT_VERSION" >> $GITHUB_OUTPUT | |
| e2e-cluster-clear: | |
| needs: [ get-test-engine ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout testinfra Code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: apecloud/testinfra | |
| path: ./ | |
| token: ${{ env.GH_TOKEN }} | |
| - name: Configure ACK Context ${{ inputs.CLOUD_ENV_NAME }} | |
| id: cloud_env | |
| run: | | |
| mkdir -p $HOME/.kube | |
| touch $HOME/.kube/config | |
| CLOUD_ENV_NAME="${{ inputs.CLOUD_ENV_NAME }}" | |
| if [[ -z "$CLOUD_ENV_NAME" ]]; then | |
| CLOUD_ENV_NAME="dev" | |
| fi | |
| echo CLOUD_ENV_NAME="$CLOUD_ENV_NAME" >> $GITHUB_ENV | |
| E2E_ENV_VARS="" | |
| case "$CLOUD_ENV_NAME" in | |
| dev) | |
| echo '${{ env.ACK_KUBECONFIG_DEV }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_DEV }}" | |
| ;; | |
| demo) | |
| echo '${{ env.ACK_KUBECONFIG_DEMO }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_DEMO }}" | |
| ;; | |
| idc) | |
| echo '${{ env.IDC_KUBECONFIG }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC }}" | |
| ;; | |
| idc1) | |
| echo '${{ env.IDC_KUBECONFIG_1 }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC1 }}" | |
| ;; | |
| idc2) | |
| echo '${{ env.IDC_KUBECONFIG_2 }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC2 }}" | |
| ;; | |
| idc4) | |
| echo '${{ env.IDC_KUBECONFIG_4 }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC4 }}" | |
| ;; | |
| prod) | |
| echo '${{ env.ACK_KUBECONFIG_PROD }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_PROD }}" | |
| ;; | |
| intl_prod) | |
| echo '${{ env.ACK_KUBECONFIG_INTL_PROD }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_INTL_PROD }}" | |
| ;; | |
| esac | |
| echo E2E_ENV_VARS="$E2E_ENV_VARS" >> $GITHUB_ENV | |
| - name: clear e2e backup | |
| continue-on-error: true | |
| run: | | |
| backup_filter="$(date +%Y-%m)" | |
| echo "delete e2e Retain backup" | |
| kubectl get backup -n kubeblocks-cloud-ns --no-headers | (grep "e2e-" | grep -v "${backup_filter}" || true) | awk '{print $1}' | xargs kubectl delete backup -n kubeblocks-cloud-ns & | |
| echo "patch e2e Deleting backup finalizers" | |
| for i in $(seq 1 10); do | |
| e2e_deleting_backup=$(kubectl get backup -n kubeblocks-cloud-ns --no-headers | (grep "e2e-" | grep "Deleting" || true) | awk '{print $1}') | |
| if [[ -z "${e2e_deleting_backup}" ]]; then | |
| break | |
| else | |
| kubectl get backup -n kubeblocks-cloud-ns --no-headers | (grep "e2e-" | grep "Deleting" || true) | awk '{print $1}' | xargs kubectl patch backup -p '{"metadata":{"finalizers":[]}}' --type=merge -n kubeblocks-cloud-ns | |
| fi | |
| sleep 1 | |
| done | |
| - name: run e2e clear cluster | |
| run: | | |
| run_file_log="run_e2e_clear_result.log" | |
| touch ${run_file_log} | |
| for env_vars in $(echo "${E2E_ENV_VARS}" | sed 's/|/ /g'); do | |
| eval_cmd="export $env_vars" | |
| echo "$eval_cmd" | |
| eval "$eval_cmd" | |
| done | |
| CLOUD_TEST_ENV="${{ inputs.CLOUD_TEST_ENV }}" | |
| if [[ -n "${CLOUD_TEST_ENV}" ]]; then | |
| echo "export KB_CLOUD_TEST_ENVIRONMENT=${CLOUD_TEST_ENV}" | |
| export KB_CLOUD_TEST_ENVIRONMENT="${CLOUD_TEST_ENV}" | |
| echo "export KB_CLOUD_TEST_NODE=node3" | |
| export KB_CLOUD_TEST_NODE="node3" | |
| fi | |
| CLOUD_TEST_KB_VERSION="${{ inputs.CLOUD_TEST_KB_VERSION }}" | |
| echo "export KB_CLOUD_TEST_KUBEBLOCKS_VERSION=${CLOUD_TEST_KB_VERSION}" | |
| export KB_CLOUD_TEST_KUBEBLOCKS_VERSION="${CLOUD_TEST_KB_VERSION}" | |
| # run e2e clear cluster | |
| bash test/cloud/test_cloud_e2e_clear.sh \ | |
| --release-version "${{ needs.get-test-engine.outputs.cloud-branch }}" \ | |
| --env "${CLOUD_TEST_ENV}" | tee -a ${run_file_log} | |
| CLOUD_E2E_CLEAR_POD_NAME="$(cat ${run_file_log} | (grep '\[CLOUD-E2E-CLEAR-POD-NAME\]' || true) )" | |
| if [[ -n "${CLOUD_E2E_CLEAR_POD_NAME}" && "$CLOUD_E2E_CLEAR_POD_NAME" == "[CLOUD-E2E-CLEAR-POD-NAME]"* ]]; then | |
| CLOUD_E2E_CLEAR_POD_NAME=${CLOUD_E2E_CLEAR_POD_NAME#*"[CLOUD-E2E-CLEAR-POD-NAME]"} | |
| fi | |
| echo CLOUD_E2E_CLEAR_POD_NAME="$CLOUD_E2E_CLEAR_POD_NAME" >> $GITHUB_ENV | |
| - name: Waiting for Cloud E2E Clear Pod to be Completed | |
| run: | | |
| set +e | |
| set -o nounset | |
| sleep 2 | |
| while true; do | |
| if kubectl get pods -n default | grep "${CLOUD_E2E_CLEAR_POD_NAME}" | egrep "Completed|Error" ; then | |
| echo "Cloud E2E Clear is Done" | |
| set +e | |
| set -o nounset | |
| for i in $(seq 1 10); do | |
| kubectl logs -n default ${CLOUD_E2E_CLEAR_POD_NAME} | |
| log_ret=$? | |
| if [[ $log_ret -eq 0 ]]; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| for i in $(seq 1 10); do | |
| kubectl delete pod -n default ${CLOUD_E2E_CLEAR_POD_NAME} --force | |
| delete_ret=$? | |
| if [[ $delete_ret -eq 0 ]]; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| set -e | |
| break | |
| fi | |
| if kubectl get pods -n default | grep "${CLOUD_E2E_CLEAR_POD_NAME}" | egrep "Running|Error" ; then | |
| kubectl logs -n default ${CLOUD_E2E_CLEAR_POD_NAME} --tail=5 | |
| else | |
| echo "Waiting for Cloud E2E Clear Pod to be Completed..." | |
| fi | |
| sleep 1 | |
| done | |
| e2e-engine-test: | |
| needs: [ get-test-engine, e2e-cluster-clear ] | |
| name: ${{ matrix.test-engine }} | |
| strategy: | |
| max-parallel: 1 | |
| fail-fast: false | |
| matrix: ${{ fromJSON(needs.get-test-engine.outputs.test-engines) }} | |
| outputs: | |
| test-result-1: ${{ steps.get_test_result.outputs.test-result-1 }} | |
| test-result-2: ${{ steps.get_test_result.outputs.test-result-2 }} | |
| test-result-3: ${{ steps.get_test_result.outputs.test-result-3 }} | |
| test-result-4: ${{ steps.get_test_result.outputs.test-result-4 }} | |
| test-result-5: ${{ steps.get_test_result.outputs.test-result-5 }} | |
| test-result-6: ${{ steps.get_test_result.outputs.test-result-6 }} | |
| test-result-7: ${{ steps.get_test_result.outputs.test-result-7 }} | |
| test-result-8: ${{ steps.get_test_result.outputs.test-result-8 }} | |
| test-result-9: ${{ steps.get_test_result.outputs.test-result-9 }} | |
| test-result-10: ${{ steps.get_test_result.outputs.test-result-10 }} | |
| test-summary-1: ${{ steps.get_test_result.outputs.test-summary-1 }} | |
| test-summary-2: ${{ steps.get_test_result.outputs.test-summary-2 }} | |
| test-summary-3: ${{ steps.get_test_result.outputs.test-summary-3 }} | |
| test-summary-4: ${{ steps.get_test_result.outputs.test-summary-4 }} | |
| test-summary-5: ${{ steps.get_test_result.outputs.test-summary-5 }} | |
| test-summary-6: ${{ steps.get_test_result.outputs.test-summary-6 }} | |
| test-summary-7: ${{ steps.get_test_result.outputs.test-summary-7 }} | |
| test-summary-8: ${{ steps.get_test_result.outputs.test-summary-8 }} | |
| test-summary-9: ${{ steps.get_test_result.outputs.test-summary-9 }} | |
| test-summary-10: ${{ steps.get_test_result.outputs.test-summary-10 }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout testinfra Code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: apecloud/testinfra | |
| path: ./ | |
| token: ${{ env.GH_TOKEN }} | |
| - name: Checkout apecloud-cd Code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: apecloud/apecloud-cd | |
| path: ./apecloud-cd | |
| ref: ${{ inputs.APECD_REF }} | |
| - name: Checkout apecloud Code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: apecloud/apecloud | |
| path: ./apecloud | |
| token: ${{ env.GH_TOKEN }} | |
| ref: "${{ needs.get-test-engine.outputs.cloud-branch }}" | |
| fetch-depth: 0 | |
| - name: Configure ACK Context ${{ inputs.CLOUD_ENV_NAME }} | |
| id: cloud_env | |
| run: | | |
| mkdir -p $HOME/.kube | |
| touch $HOME/.kube/config | |
| CLOUD_ENV_NAME="${{ inputs.CLOUD_ENV_NAME }}" | |
| if [[ -z "$CLOUD_ENV_NAME" ]]; then | |
| CLOUD_ENV_NAME="dev" | |
| fi | |
| echo CLOUD_ENV_NAME="$CLOUD_ENV_NAME" >> $GITHUB_ENV | |
| E2E_ENV_VARS="" | |
| case "$CLOUD_ENV_NAME" in | |
| dev) | |
| echo '${{ env.ACK_KUBECONFIG_DEV }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_DEV }}" | |
| ;; | |
| demo) | |
| echo '${{ env.ACK_KUBECONFIG_DEMO }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_DEMO }}" | |
| ;; | |
| idc) | |
| echo '${{ env.IDC_KUBECONFIG }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC }}" | |
| ;; | |
| idc1) | |
| echo '${{ env.IDC_KUBECONFIG_1 }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC1 }}" | |
| ;; | |
| idc2) | |
| echo '${{ env.IDC_KUBECONFIG_2 }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC2 }}" | |
| ;; | |
| idc4) | |
| echo '${{ env.IDC_KUBECONFIG_4 }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_IDC4 }}" | |
| ;; | |
| prod) | |
| echo '${{ env.ACK_KUBECONFIG_PROD }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_PROD }}" | |
| ;; | |
| intl_prod) | |
| echo '${{ env.ACK_KUBECONFIG_INTL_PROD }}' > $HOME/.kube/config | |
| E2E_ENV_VARS="${{ vars.E2E_ENV_VARS_INTL_PROD }}" | |
| ;; | |
| esac | |
| echo E2E_ENV_VARS="$E2E_ENV_VARS" >> $GITHUB_ENV | |
| - name: install python dateutil | |
| run: | | |
| pip3 install python-dateutil | |
| - name: run ${{ matrix.test-type }} | |
| run: | | |
| run_file_log="run_e2e_test_result.log" | |
| touch ${run_file_log} | |
| for env_vars in $(echo "${E2E_ENV_VARS}" | sed 's/|/ /g'); do | |
| eval_cmd="export $env_vars" | |
| echo "$eval_cmd" | |
| eval "$eval_cmd" | |
| done | |
| CLOUD_TEST_ENV="${{ inputs.CLOUD_TEST_ENV }}" | |
| if [[ -n "${CLOUD_TEST_ENV}" ]]; then | |
| echo "export KB_CLOUD_TEST_ENVIRONMENT=${CLOUD_TEST_ENV}" | |
| export KB_CLOUD_TEST_ENVIRONMENT="${CLOUD_TEST_ENV}" | |
| echo "export KB_CLOUD_TEST_NODE=node3" | |
| export KB_CLOUD_TEST_NODE="node3" | |
| fi | |
| CLOUD_TEST_KB_VERSION="${{ inputs.CLOUD_TEST_KB_VERSION }}" | |
| echo "export KB_CLOUD_TEST_KUBEBLOCKS_VERSION=${CLOUD_TEST_KB_VERSION}" | |
| export KB_CLOUD_TEST_KUBEBLOCKS_VERSION="${CLOUD_TEST_KB_VERSION}" | |
| TEST_ENGINES="${{ matrix.test-engine }}" | |
| TEST_JOB_INDEX="${{ matrix.test-job-index }}" | |
| echo "export KB_CLOUD_TEST_ENGINES=${TEST_ENGINES}" | |
| export KB_CLOUD_TEST_ENGINES=${TEST_ENGINES} | |
| # run cloud e2e test | |
| bash test/cloud/test_cloud_e2e.sh \ | |
| --test-type "engine-test" \ | |
| --pod-index "${TEST_JOB_INDEX}" \ | |
| --release-version "${{ needs.get-test-engine.outputs.cloud-branch }}" \ | |
| --env "${CLOUD_TEST_ENV}" | tee -a ${run_file_log} | |
| CLOUD_E2E_TEST_POD_NAME="$(cat ${run_file_log} | (grep '\[CLOUD-E2E-TEST-POD-NAME\]' || true) )" | |
| if [[ -n "${CLOUD_E2E_TEST_POD_NAME}" && "$CLOUD_E2E_TEST_POD_NAME" == "[CLOUD-E2E-TEST-POD-NAME]"* ]]; then | |
| CLOUD_E2E_TEST_POD_NAME=${CLOUD_E2E_TEST_POD_NAME#*"[CLOUD-E2E-TEST-POD-NAME]"} | |
| fi | |
| echo CLOUD_E2E_TEST_POD_NAME="$CLOUD_E2E_TEST_POD_NAME" >> $GITHUB_ENV | |
| - name: Waiting for Cloud E2E to be Completed | |
| run: | | |
| set +e | |
| set -o nounset | |
| sleep 10 | |
| while true; do | |
| if kubectl get pods -n default | grep "${CLOUD_E2E_TEST_POD_NAME}" | egrep "Completed|Error" ; then | |
| echo "Cloud E2E Test is Done" | |
| break | |
| fi | |
| if kubectl get pods -n default | grep "${CLOUD_E2E_TEST_POD_NAME}" | egrep "Running|Error" ; then | |
| kubectl logs -n default ${CLOUD_E2E_TEST_POD_NAME} --tail=5 | |
| else | |
| echo "Waiting for Cloud E2E to be Running..." | |
| fi | |
| sleep 1 | |
| done | |
| - name: Get Test Result | |
| if: ${{ always() }} | |
| id: get_test_result | |
| run: | | |
| file_log="test_result.log" | |
| test_file_log_path="${{ github.workspace }}/${file_log}" | |
| touch ${test_file_log_path} | |
| set +e | |
| set -o nounset | |
| for i in $(seq 1 10); do | |
| kubectl logs -n default ${CLOUD_E2E_TEST_POD_NAME} > ${test_file_log_path} | |
| log_ret=$? | |
| if [[ $log_ret -eq 0 ]]; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| for i in $(seq 1 10); do | |
| kubectl delete pod -n default ${CLOUD_E2E_TEST_POD_NAME} --force | |
| delete_ret=$? | |
| if [[ $delete_ret -eq 0 ]]; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| set -e | |
| cat ${test_file_log_path} | |
| test_ret="$( grep "Test Suite Failed" ${test_file_log_path} || true )" | |
| TEST_RESULT_ALL="$(cat ${test_file_log_path} | (egrep 'SUCCESS!|FAIL!' | grep -- '--' || true))" | |
| echo "test result all:${TEST_RESULT_ALL}" | |
| TEST_RESULT_ALL=$(python3 ${{ github.workspace }}/apecloud-cd/.github/utils/remove_ansi.py --ansi-str "$TEST_RESULT_ALL") | |
| TEST_RESULT=$(bash ${{ github.workspace }}/apecloud-cd/.github/utils/utils.sh --type 41 --test-result "${TEST_RESULT_ALL}") | |
| echo "test result total:${TEST_RESULT}" | |
| if [[ -z "$TEST_RESULT" ]]; then | |
| TEST_RESULT="$(cat ${test_file_log_path} | (egrep 'SUCCESS!|FAIL!' | grep -- '--' || true) | tail -n 1)" | |
| TEST_RESULT=$(python3 ${{ github.workspace }}/apecloud-cd/.github/utils/remove_ansi.py --ansi-str "$TEST_RESULT") | |
| echo "test result remove ansi:${TEST_RESULT}" | |
| fi | |
| if [[ -z "$TEST_RESULT" ]]; then | |
| TEST_RESULT="[PASSED]" | |
| if [[ -n "$test_ret" || -z "${TEST_RESULT_ALL}" ]]; then | |
| TEST_RESULT="[FAILED]" | |
| fi | |
| echo "test result PASSED or FAILED:${TEST_RESULT}" | |
| fi | |
| file_log_tmp="test_result_tmp.log" | |
| test_file_log_tmp_path="${{ github.workspace }}/${file_log_tmp}" | |
| touch ${test_file_log_tmp_path} | |
| E2E_TEST_RESULT_LOG=$(python3 ${{ github.workspace }}/apecloud-cd/.github/utils/remove_ansi_file.py ${test_file_log_path}) | |
| echo "${E2E_TEST_RESULT_LOG}" > ${test_file_log_tmp_path} | |
| ENGINE_SUMMARY=$(python3 test/report/parse_ginkgo.py summary2 ${test_file_log_tmp_path}) | |
| TEST_JOB_INDEX="${{ matrix.test-job-index }}" | |
| case "${TEST_JOB_INDEX}" in | |
| 01) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-1="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-1="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 02) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-2="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-2="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 03) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-3="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-3="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 04) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-4="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-4="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 05) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-5="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-5="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 06) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-6="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-6="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 07) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-7="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-7="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 08) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-8="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-8="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 09) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-9="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-9="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| 10) | |
| echo "TEST_JOB_INDEX:${TEST_JOB_INDEX}" | |
| echo test-result-10="${TEST_RESULT}" >> $GITHUB_OUTPUT | |
| echo test-summary-10="${ENGINE_SUMMARY}" >> $GITHUB_OUTPUT | |
| ;; | |
| esac | |
| echo "TEST_RESULT:${TEST_RESULT}" | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| if [[ -n "$test_ret" ]]; then | |
| exit 1 | |
| fi | |
| send-message: | |
| needs: [ get-test-engine, e2e-engine-test ] | |
| runs-on: ubuntu-latest | |
| if: ${{ always() }} | |
| steps: | |
| - name: Checkout apecloud-cd Code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: apecloud/apecloud-cd | |
| ref: ${{ inputs.APECD_REF }} | |
| - name: send test result message | |
| run: | | |
| export TZ='Asia/Shanghai' | |
| date_ret=$(date +%Y-%m-%d-%T) | |
| CLOUD_BRANCH="${{ needs.get-test-engine.outputs.cloud-branch }}" | |
| CLOUD_ENV_NAME="${{ needs.get-test-engine.outputs.cloud-env-name }}" | |
| TEST_ENGINES_ALL="${{ needs.get-test-engine.outputs.test-engines-all }}" | |
| APECLOUD_CURRENT_VERSION="${{ needs.get-test-engine.outputs.current-version }}" | |
| TEST_RESULT_ALL="" | |
| for test_engines_all in $(echo "${TEST_ENGINES_ALL}" | sed 's/##/ /g'); do | |
| test_engines=${test_engines_all%%|*} | |
| test_job_index=${test_engines_all#*|} | |
| case "${test_job_index}" in | |
| 01) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-1 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 02) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-2 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 03) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-3 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 04) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-4 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 05) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-5 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 06) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-6 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 07) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-7 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 08) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-8 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 09) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-9 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| 10) | |
| echo "test-job-index:${test_job_index}" | |
| TEST_RESULT="${{ needs.e2e-engine-test.outputs.test-result-10 }}" | |
| TEST_RESULT_ALL="${TEST_RESULT_ALL}##${test_engines}|${TEST_RESULT}" | |
| ;; | |
| esac | |
| done | |
| echo "TEST_RESULT_ALL:${TEST_RESULT_ALL}" | |
| TEST_RESULT_ALL=$( bash .github/utils/utils.sh --type 40 \ | |
| --github-repo "${{ github.repository }}" \ | |
| --github-token "${{ env.GH_TOKEN }}" \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --run-id "$GITHUB_RUN_ID" ) | |
| echo "TEST_RESULT_ALL:${TEST_RESULT_ALL}" | |
| CLOUD_ENV_NAME_TMP="${CLOUD_ENV_NAME}" | |
| CLOUD_TEST_ENV="${{ inputs.CLOUD_TEST_ENV }}" | |
| if [[ -n "${CLOUD_TEST_ENV}" ]]; then | |
| CLOUD_ENV_NAME_TMP="${CLOUD_TEST_ENV}" | |
| fi | |
| TEST_TITLE="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E Engine Test [${date_ret}]" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type ginkgo \ | |
| --url "${{ vars.CLOUD_E2E_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE" \ | |
| --result "${TEST_RESULT_ALL}" | |
| for test_engines_all in $(echo "${TEST_ENGINES_ALL}" | sed 's/##/ /g'); do | |
| test_engines=${test_engines_all%%|*} | |
| test_job_index=${test_engines_all#*|} | |
| case "${test_job_index}" in | |
| 01) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-1 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 02) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-2 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 03) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-3 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 04) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-4 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 05) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-5 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 06) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-6 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 07) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-7 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 08) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-8 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 09) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-9 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| 10) | |
| echo "test-job-index:${test_job_index}" | |
| ENGINE_SUMMARY="${{ needs.e2e-engine-test.outputs.test-summary-10 }}" | |
| TEST_TITLE_ENGINE_SUMMARY="[${CLOUD_BRANCH}][${CLOUD_ENV_NAME_TMP}] Cloud E2E ${test_engines} API Summary [${date_ret}]" | |
| if [[ -n "${ENGINE_SUMMARY}" ]]; then | |
| echo "ENGINE_SUMMARY:${ENGINE_SUMMARY}" | |
| ENGINE_SUMMARY_TMP="$(bash .github/utils/utils.sh \ | |
| --type 45 \ | |
| --test-result "${TEST_RESULT_ALL}" \ | |
| --coverage-result "${ENGINE_SUMMARY}")" | |
| echo "ENGINE_SUMMARY_TMP:${ENGINE_SUMMARY_TMP}" | |
| python3 .github/utils/send_mesage.py \ | |
| --send-type "engine-summary2" \ | |
| --url "${{ vars.REPORT_BOT_WEBHOOK }}" \ | |
| --title "$TEST_TITLE_ENGINE_SUMMARY" \ | |
| --result "$ENGINE_SUMMARY_TMP" | |
| fi | |
| ;; | |
| esac | |
| done |