From c9a3a94494b3fd7f4a18a091b29b404820dd4447 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Wed, 17 Apr 2024 19:02:30 +0530 Subject: [PATCH 1/5] feat: update unit_test_runner and unit_test_race to allow running subset of unit tests based on the environment variable Signed-off-by: Manan Gupta --- tools/unit_test_race.sh | 10 ++++++---- tools/unit_test_runner.sh | 9 +++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/tools/unit_test_race.sh b/tools/unit_test_race.sh index b1c59e9ea2e..3f5cf3f5b2d 100755 --- a/tools/unit_test_race.sh +++ b/tools/unit_test_race.sh @@ -24,11 +24,13 @@ fi # Output per line: * packages_with_tests=$(go list -f '{{if len .TestGoFiles}}{{.ImportPath}} {{join .TestGoFiles " "}}{{end}}{{if len .XTestGoFiles}}{{.ImportPath}} {{join .XTestGoFiles " "}}{{end}}' ./go/... | sort) +if [[ "$VT_EVALENGINE_TEST" == "1" ]]; then + packages_with_tests=$(echo "$packages_with_tests" | grep "evalengine") +fi -# exclude end to end tests -packages_to_test=$(echo "$packages_with_tests" | cut -d" " -f1 | grep -v "endtoend") -all_except_flaky_tests=$(echo "$packages_to_test" | grep -vE ".+ .+_flaky_test\.go" | cut -d" " -f1 | grep -v "endtoend") -flaky_tests=$(echo "$packages_to_test" | grep -E ".+ .+_flaky_test\.go" | cut -d" " -f1) +if [[ "$VT_EVALENGINE_TEST" == "-1" ]]; then + packages_with_tests=$(echo "$packages_with_tests" | grep -v "evalengine") +fi # Flaky tests have the suffix "_flaky_test.go". # Exclude endtoend tests diff --git a/tools/unit_test_runner.sh b/tools/unit_test_runner.sh index 8fba8920ec6..85eeb5333c2 100755 --- a/tools/unit_test_runner.sh +++ b/tools/unit_test_runner.sh @@ -54,6 +54,15 @@ esac # Output per line: * packages_with_tests=$(go list -f '{{if len .TestGoFiles}}{{.ImportPath}} {{join .TestGoFiles " "}}{{end}}{{if len .XTestGoFiles}}{{.ImportPath}} {{join .XTestGoFiles " "}}{{end}}' ./go/... | sort) +if [[ "$VT_EVALENGINE_TEST" == "1" ]]; then + packages_with_tests=$(echo "$packages_with_tests" | grep "evalengine") +fi + +if [[ "$VT_EVALENGINE_TEST" == "-1" ]]; then + # shellcheck disable=SC2086 + packages_with_tests=$(echo $packages_with_tests | grep -v "evalengine") +fi + # Flaky tests have the suffix "_flaky_test.go". # Exclude endtoend tests all_except_flaky_tests=$(echo "$packages_with_tests" | grep -vE ".+ .+_flaky_test\.go" | cut -d" " -f1 | grep -v "endtoend") From 2ec477c91ef433fffbe2bd062c6c0aa76f99af14 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Wed, 17 Apr 2024 19:11:26 +0530 Subject: [PATCH 2/5] feat: add workflows to run evalengine and non-evalengine tests Signed-off-by: Manan Gupta --- .github/workflows/unit_race.yml | 11 +- .github/workflows/unit_race_evalengine.yml | 146 +++++++++++++++ ...7.yml => unit_test_evalengine_mysql57.yml} | 10 +- ...0.yml => unit_test_evalengine_mysql80.yml} | 10 +- .../unit_test_non_evalengine_mysql57.yml | 172 ++++++++++++++++++ .../unit_test_non_evalengine_mysql80.yml | 169 +++++++++++++++++ test/ci_workflow_gen.go | 30 ++- test/templates/unit_test.tpl | 2 + 8 files changed, 527 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/unit_race_evalengine.yml rename .github/workflows/{unit_test_mysql57.yml => unit_test_evalengine_mysql57.yml} (96%) rename .github/workflows/{unit_test_mysql80.yml => unit_test_evalengine_mysql80.yml} (96%) create mode 100644 .github/workflows/unit_test_non_evalengine_mysql57.yml create mode 100644 .github/workflows/unit_test_non_evalengine_mysql80.yml diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml index 1e177872160..e6f0c389808 100644 --- a/.github/workflows/unit_race.yml +++ b/.github/workflows/unit_race.yml @@ -1,7 +1,7 @@ -name: unit_race +name: unit_race_non_evalengine on: [push, pull_request] concurrency: - group: format('{0}-{1}', ${{ github.ref }}, 'unit_race') + group: format('{0}-{1}', ${{ github.ref }}, 'unit_race_non_evalengine') cancel-in-progress: true permissions: read-all @@ -14,7 +14,7 @@ env: jobs: build: - name: Unit Test (Race) + name: Unit Test (Non_Evalengine_Race) runs-on: gh-hosted-runners-16cores-1 steps: - name: Skip CI @@ -63,7 +63,7 @@ jobs: - 'tools/**' - 'config/**' - 'bootstrap.sh' - - '.github/workflows/unit_race.yml' + - '.github/workflows/unit_race_non_evalengine.yml' - name: Set up Go if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' @@ -122,7 +122,7 @@ jobs: # Tell Launchable about the build you are producing and testing launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source . - - name: unit_race + - name: unit_race_non_evalengine if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' timeout-minutes: 45 run: | @@ -130,6 +130,7 @@ jobs: # which musn't be more than 107 characters long. export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="-1" eatmydata -- make unit_test_race | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_race_evalengine.yml b/.github/workflows/unit_race_evalengine.yml new file mode 100644 index 00000000000..06794e75fbd --- /dev/null +++ b/.github/workflows/unit_race_evalengine.yml @@ -0,0 +1,146 @@ +name: unit_race_evalengine +on: [push, pull_request] +concurrency: + group: format('{0}-{1}', ${{ github.ref }}, 'unit_race_evalengine') + cancel-in-progress: true + +permissions: read-all + +env: + LAUNCHABLE_ORGANIZATION: "vitess" + LAUNCHABLE_WORKSPACE: "vitess-app" + GITHUB_PR_HEAD_SHA: "${{ github.event.pull_request.head.sha }}" + +jobs: + + build: + name: Unit Test (Evalengine_Race) + runs-on: gh-hosted-runners-16cores-1 + steps: + - name: Skip CI + run: | + if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then + echo "skipping CI due to the 'Skip CI' label" + exit 1 + fi + + - name: Check if workflow needs to be skipped + id: skip-workflow + run: | + skip='false' + if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then + skip='true' + fi + echo Skip ${skip} + echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT + + PR_DATA=$(curl \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}") + draft=$(echo "$PR_DATA" | jq .draft -r) + echo "is_draft=${draft}" >> $GITHUB_OUTPUT + + - name: Check out code + if: steps.skip-workflow.outputs.skip-workflow == 'false' + uses: actions/checkout@v4 + + - name: Check for changes in relevant files + if: steps.skip-workflow.outputs.skip-workflow == 'false' + uses: dorny/paths-filter@v3.0.1 + id: changes + with: + token: '' + filters: | + unit_tests: + - 'go/**' + - 'test.go' + - 'Makefile' + - 'build.env' + - 'go.sum' + - 'go.mod' + - 'proto/*.proto' + - 'tools/**' + - 'config/**' + - 'bootstrap.sh' + - '.github/workflows/unit_race_evalengine.yml' + + - name: Set up Go + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + uses: actions/setup-go@v5 + with: + go-version: 1.22.2 + + - name: Set up python + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + uses: actions/setup-python@v5 + + - name: Tune the OS + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + sudo sysctl -w net.ipv4.ip_local_port_range="22768 65535" + + - name: Get dependencies + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + export DEBIAN_FRONTEND="noninteractive" + sudo apt-get -qq update + + # mysql80 + sudo apt-get -qq install -y mysql-server mysql-client + + sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo service mysql stop + sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 + sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ + sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld || echo "could not remove mysqld profile" + + mkdir -p dist bin + curl -s -L https://github.com/coreos/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz | tar -zxC dist + mv dist/etcd-v3.3.10-linux-amd64/{etcd,etcdctl} bin/ + + go mod download + go install golang.org/x/tools/cmd/goimports@latest + + # install JUnit report formatter + go install github.com/vitessio/go-junit-report@HEAD + + - name: Run make tools + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + make tools + + - name: Setup launchable dependencies + if: steps.skip-workflow.outputs.is_draft == 'false' && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' && github.base_ref == 'main' + run: | + # Get Launchable CLI installed. If you can, make it a part of the builder image to speed things up + pip3 install --user launchable~=1.0 > /dev/null + + # verify that launchable setup is all correct. + launchable verify || true + + # Tell Launchable about the build you are producing and testing + launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source . + + - name: unit_race_evalengine + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + timeout-minutes: 45 + run: | + # We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file + # which musn't be more than 107 characters long. + export VTDATAROOT="/tmp/" + export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="1" + + eatmydata -- make unit_test_race | tee -a output.txt | go-junit-report -set-exit-code > report.xml + + - name: Print test output and Record test result in launchable if PR is not a draft + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' && always() + run: | + if [[ "${{steps.skip-workflow.outputs.is_draft}}" == "false" ]]; then + # send recorded tests to launchable + launchable record tests --build "$GITHUB_RUN_ID" go-test . || true + fi + + # print test output + cat output.txt \ No newline at end of file diff --git a/.github/workflows/unit_test_mysql57.yml b/.github/workflows/unit_test_evalengine_mysql57.yml similarity index 96% rename from .github/workflows/unit_test_mysql57.yml rename to .github/workflows/unit_test_evalengine_mysql57.yml index 1a85297fc3c..15c0476183e 100644 --- a/.github/workflows/unit_test_mysql57.yml +++ b/.github/workflows/unit_test_evalengine_mysql57.yml @@ -1,9 +1,9 @@ # DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows" -name: Unit Test (mysql57) +name: Unit Test (evalengine_mysql57) on: [push, pull_request] concurrency: - group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (mysql57)') + group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (evalengine_mysql57)') cancel-in-progress: true permissions: read-all @@ -15,7 +15,7 @@ env: jobs: test: - name: Unit Test (mysql57) + name: Unit Test (evalengine_mysql57) runs-on: gh-hosted-runners-4cores-1 steps: @@ -65,7 +65,7 @@ jobs: - 'tools/**' - 'config/**' - 'bootstrap.sh' - - '.github/workflows/unit_test_mysql57.yml' + - '.github/workflows/unit_test_evalengine_mysql57.yml' - name: Set up Go if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' @@ -156,6 +156,8 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="1" + eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml - name: Print test output and Record test result in launchable if PR is not a draft diff --git a/.github/workflows/unit_test_mysql80.yml b/.github/workflows/unit_test_evalengine_mysql80.yml similarity index 96% rename from .github/workflows/unit_test_mysql80.yml rename to .github/workflows/unit_test_evalengine_mysql80.yml index 8e55c0c0ae4..91dea083d99 100644 --- a/.github/workflows/unit_test_mysql80.yml +++ b/.github/workflows/unit_test_evalengine_mysql80.yml @@ -1,9 +1,9 @@ # DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows" -name: Unit Test (mysql80) +name: Unit Test (evalengine_mysql80) on: [push, pull_request] concurrency: - group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (mysql80)') + group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (evalengine_mysql80)') cancel-in-progress: true permissions: read-all @@ -15,7 +15,7 @@ env: jobs: test: - name: Unit Test (mysql80) + name: Unit Test (evalengine_mysql80) runs-on: gh-hosted-runners-4cores-1 steps: @@ -65,7 +65,7 @@ jobs: - 'tools/**' - 'config/**' - 'bootstrap.sh' - - '.github/workflows/unit_test_mysql80.yml' + - '.github/workflows/unit_test_evalengine_mysql80.yml' - name: Set up Go if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' @@ -153,6 +153,8 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="1" + eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml - name: Print test output and Record test result in launchable if PR is not a draft diff --git a/.github/workflows/unit_test_non_evalengine_mysql57.yml b/.github/workflows/unit_test_non_evalengine_mysql57.yml new file mode 100644 index 00000000000..fe57cdfcfc9 --- /dev/null +++ b/.github/workflows/unit_test_non_evalengine_mysql57.yml @@ -0,0 +1,172 @@ +# DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows" + +name: Unit Test (non_evalengine_mysql57) +on: [push, pull_request] +concurrency: + group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (non_evalengine_mysql57)') + cancel-in-progress: true + +permissions: read-all + +env: + LAUNCHABLE_ORGANIZATION: "vitess" + LAUNCHABLE_WORKSPACE: "vitess-app" + GITHUB_PR_HEAD_SHA: "${{ github.event.pull_request.head.sha }}" + +jobs: + test: + name: Unit Test (non_evalengine_mysql57) + runs-on: gh-hosted-runners-4cores-1 + + steps: + - name: Skip CI + run: | + if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then + echo "skipping CI due to the 'Skip CI' label" + exit 1 + fi + + - name: Check if workflow needs to be skipped + id: skip-workflow + run: | + skip='false' + if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then + skip='true' + fi + echo Skip ${skip} + echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT + + PR_DATA=$(curl \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}") + draft=$(echo "$PR_DATA" | jq .draft -r) + echo "is_draft=${draft}" >> $GITHUB_OUTPUT + + - name: Check out code + if: steps.skip-workflow.outputs.skip-workflow == 'false' + uses: actions/checkout@v4 + + - name: Check for changes in relevant files + if: steps.skip-workflow.outputs.skip-workflow == 'false' + uses: dorny/paths-filter@v3.0.1 + id: changes + with: + token: '' + filters: | + unit_tests: + - 'go/**' + - 'test.go' + - 'Makefile' + - 'build.env' + - 'go.sum' + - 'go.mod' + - 'proto/*.proto' + - 'tools/**' + - 'config/**' + - 'bootstrap.sh' + - '.github/workflows/unit_test_non_evalengine_mysql57.yml' + + - name: Set up Go + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + uses: actions/setup-go@v5 + with: + go-version: 1.22.2 + + - name: Set up python + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + uses: actions/setup-python@v5 + + - name: Tune the OS + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + sudo sysctl -w net.ipv4.ip_local_port_range="22768 65535" + # Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio + echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf + sudo sysctl -p /etc/sysctl.conf + + - name: Get dependencies + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + export DEBIAN_FRONTEND="noninteractive" + sudo apt-get -qq update + + # Uninstall any previously installed MySQL first + sudo systemctl stop apparmor + sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -qq -y autoremove + sudo apt-get -qq -y autoclean + sudo deluser mysql + sudo rm -rf /var/lib/mysql + sudo rm -rf /etc/mysql + + # Get key to latest MySQL repo + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C + + # mysql57 + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb + # Bionic packages are still compatible for Jammy since there's no MySQL 5.7 + # packages for Jammy. + echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections + echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections + sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* + sudo apt-get -qq update + sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses5 + + sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo service mysql stop + sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 + sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ + sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld || echo "could not remove mysqld profile" + + mkdir -p dist bin + curl -s -L https://github.com/coreos/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz | tar -zxC dist + mv dist/etcd-v3.3.10-linux-amd64/{etcd,etcdctl} bin/ + + go mod download + go install golang.org/x/tools/cmd/goimports@latest + + # install JUnit report formatter + go install github.com/vitessio/go-junit-report@HEAD + + - name: Run make tools + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + make tools + + - name: Setup launchable dependencies + if: steps.skip-workflow.outputs.is_draft == 'false' && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' && github.base_ref == 'main' + run: | + # Get Launchable CLI installed. If you can, make it a part of the builder image to speed things up + pip3 install --user launchable~=1.0 > /dev/null + + # verify that launchable setup is all correct. + launchable verify || true + + # Tell Launchable about the build you are producing and testing + launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source . + + - name: Run test + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + timeout-minutes: 30 + run: | + set -exo pipefail + # We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file + # which musn't be more than 107 characters long. + export VTDATAROOT="/tmp/" + + export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="-1" + + eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml + + - name: Print test output and Record test result in launchable if PR is not a draft + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' && always() + run: | + if [[ "${{steps.skip-workflow.outputs.is_draft}}" == "false" ]]; then + # send recorded tests to launchable + launchable record tests --build "$GITHUB_RUN_ID" go-test . || true + fi + + # print test output + cat output.txt diff --git a/.github/workflows/unit_test_non_evalengine_mysql80.yml b/.github/workflows/unit_test_non_evalengine_mysql80.yml new file mode 100644 index 00000000000..aa9540a2f84 --- /dev/null +++ b/.github/workflows/unit_test_non_evalengine_mysql80.yml @@ -0,0 +1,169 @@ +# DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows" + +name: Unit Test (non_evalengine_mysql80) +on: [push, pull_request] +concurrency: + group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (non_evalengine_mysql80)') + cancel-in-progress: true + +permissions: read-all + +env: + LAUNCHABLE_ORGANIZATION: "vitess" + LAUNCHABLE_WORKSPACE: "vitess-app" + GITHUB_PR_HEAD_SHA: "${{ github.event.pull_request.head.sha }}" + +jobs: + test: + name: Unit Test (non_evalengine_mysql80) + runs-on: gh-hosted-runners-4cores-1 + + steps: + - name: Skip CI + run: | + if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then + echo "skipping CI due to the 'Skip CI' label" + exit 1 + fi + + - name: Check if workflow needs to be skipped + id: skip-workflow + run: | + skip='false' + if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then + skip='true' + fi + echo Skip ${skip} + echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT + + PR_DATA=$(curl \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}") + draft=$(echo "$PR_DATA" | jq .draft -r) + echo "is_draft=${draft}" >> $GITHUB_OUTPUT + + - name: Check out code + if: steps.skip-workflow.outputs.skip-workflow == 'false' + uses: actions/checkout@v4 + + - name: Check for changes in relevant files + if: steps.skip-workflow.outputs.skip-workflow == 'false' + uses: dorny/paths-filter@v3.0.1 + id: changes + with: + token: '' + filters: | + unit_tests: + - 'go/**' + - 'test.go' + - 'Makefile' + - 'build.env' + - 'go.sum' + - 'go.mod' + - 'proto/*.proto' + - 'tools/**' + - 'config/**' + - 'bootstrap.sh' + - '.github/workflows/unit_test_non_evalengine_mysql80.yml' + + - name: Set up Go + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + uses: actions/setup-go@v5 + with: + go-version: 1.22.2 + + - name: Set up python + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + uses: actions/setup-python@v5 + + - name: Tune the OS + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + sudo sysctl -w net.ipv4.ip_local_port_range="22768 65535" + # Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio + echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf + sudo sysctl -p /etc/sysctl.conf + + - name: Get dependencies + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + export DEBIAN_FRONTEND="noninteractive" + sudo apt-get -qq update + + # Uninstall any previously installed MySQL first + sudo systemctl stop apparmor + sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -qq -y autoremove + sudo apt-get -qq -y autoclean + sudo deluser mysql + sudo rm -rf /var/lib/mysql + sudo rm -rf /etc/mysql + + # Get key to latest MySQL repo + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C + + # mysql80 + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb + echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections + sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* + sudo apt-get -qq update + sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + + sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo service mysql stop + sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 + sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ + sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld || echo "could not remove mysqld profile" + + mkdir -p dist bin + curl -s -L https://github.com/coreos/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz | tar -zxC dist + mv dist/etcd-v3.3.10-linux-amd64/{etcd,etcdctl} bin/ + + go mod download + go install golang.org/x/tools/cmd/goimports@latest + + # install JUnit report formatter + go install github.com/vitessio/go-junit-report@HEAD + + - name: Run make tools + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + run: | + make tools + + - name: Setup launchable dependencies + if: steps.skip-workflow.outputs.is_draft == 'false' && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' && github.base_ref == 'main' + run: | + # Get Launchable CLI installed. If you can, make it a part of the builder image to speed things up + pip3 install --user launchable~=1.0 > /dev/null + + # verify that launchable setup is all correct. + launchable verify || true + + # Tell Launchable about the build you are producing and testing + launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source . + + - name: Run test + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' + timeout-minutes: 30 + run: | + set -exo pipefail + # We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file + # which musn't be more than 107 characters long. + export VTDATAROOT="/tmp/" + + export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="-1" + + eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml + + - name: Print test output and Record test result in launchable if PR is not a draft + if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' && always() + run: | + if [[ "${{steps.skip-workflow.outputs.is_draft}}" == "false" ]]; then + # send recorded tests to launchable + launchable record tests --build "$GITHUB_RUN_ID" go-test . || true + fi + + # print test output + cat output.txt diff --git a/test/ci_workflow_gen.go b/test/ci_workflow_gen.go index 7e2bb338ed2..d7a5bc9a2ac 100644 --- a/test/ci_workflow_gen.go +++ b/test/ci_workflow_gen.go @@ -151,7 +151,7 @@ var ( ) type unitTest struct { - Name, Platform, FileName string + Name, Platform, FileName, Evalengine string } type clusterTest struct { @@ -405,19 +405,29 @@ func generateClusterWorkflows(list []string, tpl string) { func generateUnitTestWorkflows() { for _, platform := range unitTestDatabases { - test := &unitTest{ - Name: fmt.Sprintf("Unit Test (%s)", platform), - Platform: string(platform), - } - test.FileName = fmt.Sprintf("unit_test_%s.yml", platform) - path := fmt.Sprintf("%s/%s", workflowConfigDir, test.FileName) - err := writeFileFromTemplate(unitTestTemplate, path, test) - if err != nil { - log.Print(err) + for _, evalengine := range []string{"1", "-1"} { + test := &unitTest{ + Name: fmt.Sprintf("Unit Test (%s_%s)", evalengineToString(evalengine), platform), + Platform: string(platform), + Evalengine: evalengine, + } + test.FileName = fmt.Sprintf("unit_test_%s_%s.yml", evalengineToString(evalengine), platform) + path := fmt.Sprintf("%s/%s", workflowConfigDir, test.FileName) + err := writeFileFromTemplate(unitTestTemplate, path, test) + if err != nil { + log.Print(err) + } } } } +func evalengineToString(evalengine string) string { + if evalengine == "1" { + return "evalengine" + } + return "non_evalengine" +} + func setupTestDockerFile(test *selfHostedTest) error { // remove the directory relDirectoryName := fmt.Sprintf("../.github/docker/%s", test.directoryName) diff --git a/test/templates/unit_test.tpl b/test/templates/unit_test.tpl index 21689fb1c4c..e5fe78d1afa 100644 --- a/test/templates/unit_test.tpl +++ b/test/templates/unit_test.tpl @@ -170,6 +170,8 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 + export VT_EVALENGINE_TEST="{{.Evalengine}}" + eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml - name: Print test output and Record test result in launchable if PR is not a draft From 41146708cba738755fabc1bf3ada686b0325db14 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Thu, 18 Apr 2024 11:32:26 +0530 Subject: [PATCH 3/5] refactor: rename test name Signed-off-by: Manan Gupta --- .github/workflows/unit_race.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml index e6f0c389808..cea20841407 100644 --- a/.github/workflows/unit_race.yml +++ b/.github/workflows/unit_race.yml @@ -1,7 +1,7 @@ -name: unit_race_non_evalengine +name: unit_race on: [push, pull_request] concurrency: - group: format('{0}-{1}', ${{ github.ref }}, 'unit_race_non_evalengine') + group: format('{0}-{1}', ${{ github.ref }}, 'unit_race') cancel-in-progress: true permissions: read-all @@ -63,7 +63,7 @@ jobs: - 'tools/**' - 'config/**' - 'bootstrap.sh' - - '.github/workflows/unit_race_non_evalengine.yml' + - '.github/workflows/unit_race.yml' - name: Set up Go if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' @@ -122,7 +122,7 @@ jobs: # Tell Launchable about the build you are producing and testing launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source . - - name: unit_race_non_evalengine + - name: unit_race if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' timeout-minutes: 45 run: | From a08dd8270aa62324c25027351404c75b0689e485 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Thu, 18 Apr 2024 14:06:06 +0530 Subject: [PATCH 4/5] feat: address review comments Signed-off-by: Manan Gupta --- .github/workflows/unit_race.yml | 4 ++-- .github/workflows/unit_race_evalengine.yml | 2 +- .github/workflows/unit_test_evalengine_mysql57.yml | 2 +- .github/workflows/unit_test_evalengine_mysql80.yml | 2 +- ...on_evalengine_mysql57.yml => unit_test_mysql57.yml} | 10 +++++----- ...on_evalengine_mysql80.yml => unit_test_mysql80.yml} | 10 +++++----- test/ci_workflow_gen.go | 8 ++++---- test/templates/unit_test.tpl | 2 +- tools/unit_test_race.sh | 4 ++-- tools/unit_test_runner.sh | 4 ++-- 10 files changed, 24 insertions(+), 24 deletions(-) rename .github/workflows/{unit_test_non_evalengine_mysql57.yml => unit_test_mysql57.yml} (96%) rename .github/workflows/{unit_test_non_evalengine_mysql80.yml => unit_test_mysql80.yml} (96%) diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml index cea20841407..7b3f92b3599 100644 --- a/.github/workflows/unit_race.yml +++ b/.github/workflows/unit_race.yml @@ -14,7 +14,7 @@ env: jobs: build: - name: Unit Test (Non_Evalengine_Race) + name: Unit Test (Race) runs-on: gh-hosted-runners-16cores-1 steps: - name: Skip CI @@ -130,7 +130,7 @@ jobs: # which musn't be more than 107 characters long. export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="-1" + export VTEVALENGINETEST="-1" eatmydata -- make unit_test_race | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_race_evalengine.yml b/.github/workflows/unit_race_evalengine.yml index 06794e75fbd..159efa06db1 100644 --- a/.github/workflows/unit_race_evalengine.yml +++ b/.github/workflows/unit_race_evalengine.yml @@ -130,7 +130,7 @@ jobs: # which musn't be more than 107 characters long. export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="1" + export VTEVALENGINETEST="1" eatmydata -- make unit_test_race | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_test_evalengine_mysql57.yml b/.github/workflows/unit_test_evalengine_mysql57.yml index 15c0476183e..873b1637b54 100644 --- a/.github/workflows/unit_test_evalengine_mysql57.yml +++ b/.github/workflows/unit_test_evalengine_mysql57.yml @@ -156,7 +156,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="1" + export VTEVALENGINETEST="1" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_test_evalengine_mysql80.yml b/.github/workflows/unit_test_evalengine_mysql80.yml index 91dea083d99..8e7fa57c133 100644 --- a/.github/workflows/unit_test_evalengine_mysql80.yml +++ b/.github/workflows/unit_test_evalengine_mysql80.yml @@ -153,7 +153,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="1" + export VTEVALENGINETEST="1" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_test_non_evalengine_mysql57.yml b/.github/workflows/unit_test_mysql57.yml similarity index 96% rename from .github/workflows/unit_test_non_evalengine_mysql57.yml rename to .github/workflows/unit_test_mysql57.yml index fe57cdfcfc9..b460897c1ec 100644 --- a/.github/workflows/unit_test_non_evalengine_mysql57.yml +++ b/.github/workflows/unit_test_mysql57.yml @@ -1,9 +1,9 @@ # DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows" -name: Unit Test (non_evalengine_mysql57) +name: Unit Test (mysql57) on: [push, pull_request] concurrency: - group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (non_evalengine_mysql57)') + group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (mysql57)') cancel-in-progress: true permissions: read-all @@ -15,7 +15,7 @@ env: jobs: test: - name: Unit Test (non_evalengine_mysql57) + name: Unit Test (mysql57) runs-on: gh-hosted-runners-4cores-1 steps: @@ -65,7 +65,7 @@ jobs: - 'tools/**' - 'config/**' - 'bootstrap.sh' - - '.github/workflows/unit_test_non_evalengine_mysql57.yml' + - '.github/workflows/unit_test_mysql57.yml' - name: Set up Go if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' @@ -156,7 +156,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="-1" + export VTEVALENGINETEST="-1" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_test_non_evalengine_mysql80.yml b/.github/workflows/unit_test_mysql80.yml similarity index 96% rename from .github/workflows/unit_test_non_evalengine_mysql80.yml rename to .github/workflows/unit_test_mysql80.yml index aa9540a2f84..9ed193a6085 100644 --- a/.github/workflows/unit_test_non_evalengine_mysql80.yml +++ b/.github/workflows/unit_test_mysql80.yml @@ -1,9 +1,9 @@ # DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows" -name: Unit Test (non_evalengine_mysql80) +name: Unit Test (mysql80) on: [push, pull_request] concurrency: - group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (non_evalengine_mysql80)') + group: format('{0}-{1}', ${{ github.ref }}, 'Unit Test (mysql80)') cancel-in-progress: true permissions: read-all @@ -15,7 +15,7 @@ env: jobs: test: - name: Unit Test (non_evalengine_mysql80) + name: Unit Test (mysql80) runs-on: gh-hosted-runners-4cores-1 steps: @@ -65,7 +65,7 @@ jobs: - 'tools/**' - 'config/**' - 'bootstrap.sh' - - '.github/workflows/unit_test_non_evalengine_mysql80.yml' + - '.github/workflows/unit_test_mysql80.yml' - name: Set up Go if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' @@ -153,7 +153,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="-1" + export VTEVALENGINETEST="-1" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/test/ci_workflow_gen.go b/test/ci_workflow_gen.go index d7a5bc9a2ac..7f502058700 100644 --- a/test/ci_workflow_gen.go +++ b/test/ci_workflow_gen.go @@ -407,11 +407,11 @@ func generateUnitTestWorkflows() { for _, platform := range unitTestDatabases { for _, evalengine := range []string{"1", "-1"} { test := &unitTest{ - Name: fmt.Sprintf("Unit Test (%s_%s)", evalengineToString(evalengine), platform), + Name: fmt.Sprintf("Unit Test (%s%s)", evalengineToString(evalengine), platform), Platform: string(platform), Evalengine: evalengine, } - test.FileName = fmt.Sprintf("unit_test_%s_%s.yml", evalengineToString(evalengine), platform) + test.FileName = fmt.Sprintf("unit_test_%s%s.yml", evalengineToString(evalengine), platform) path := fmt.Sprintf("%s/%s", workflowConfigDir, test.FileName) err := writeFileFromTemplate(unitTestTemplate, path, test) if err != nil { @@ -423,9 +423,9 @@ func generateUnitTestWorkflows() { func evalengineToString(evalengine string) string { if evalengine == "1" { - return "evalengine" + return "evalengine_" } - return "non_evalengine" + return "" } func setupTestDockerFile(test *selfHostedTest) error { diff --git a/test/templates/unit_test.tpl b/test/templates/unit_test.tpl index e5fe78d1afa..128b365467f 100644 --- a/test/templates/unit_test.tpl +++ b/test/templates/unit_test.tpl @@ -170,7 +170,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VT_EVALENGINE_TEST="{{.Evalengine}}" + export VTEVALENGINETEST="{{.Evalengine}}" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/tools/unit_test_race.sh b/tools/unit_test_race.sh index 3f5cf3f5b2d..56ae1faef2c 100755 --- a/tools/unit_test_race.sh +++ b/tools/unit_test_race.sh @@ -24,11 +24,11 @@ fi # Output per line: * packages_with_tests=$(go list -f '{{if len .TestGoFiles}}{{.ImportPath}} {{join .TestGoFiles " "}}{{end}}{{if len .XTestGoFiles}}{{.ImportPath}} {{join .XTestGoFiles " "}}{{end}}' ./go/... | sort) -if [[ "$VT_EVALENGINE_TEST" == "1" ]]; then +if [[ "$VTEVALENGINETEST" == "1" ]]; then packages_with_tests=$(echo "$packages_with_tests" | grep "evalengine") fi -if [[ "$VT_EVALENGINE_TEST" == "-1" ]]; then +if [[ "$VTEVALENGINETEST" == "-1" ]]; then packages_with_tests=$(echo "$packages_with_tests" | grep -v "evalengine") fi diff --git a/tools/unit_test_runner.sh b/tools/unit_test_runner.sh index 85eeb5333c2..c8ed7314bd9 100755 --- a/tools/unit_test_runner.sh +++ b/tools/unit_test_runner.sh @@ -54,11 +54,11 @@ esac # Output per line: * packages_with_tests=$(go list -f '{{if len .TestGoFiles}}{{.ImportPath}} {{join .TestGoFiles " "}}{{end}}{{if len .XTestGoFiles}}{{.ImportPath}} {{join .XTestGoFiles " "}}{{end}}' ./go/... | sort) -if [[ "$VT_EVALENGINE_TEST" == "1" ]]; then +if [[ "$VTEVALENGINETEST" == "1" ]]; then packages_with_tests=$(echo "$packages_with_tests" | grep "evalengine") fi -if [[ "$VT_EVALENGINE_TEST" == "-1" ]]; then +if [[ "$VTEVALENGINETEST" == "-1" ]]; then # shellcheck disable=SC2086 packages_with_tests=$(echo $packages_with_tests | grep -v "evalengine") fi From 601ee33812ca54d34ae051f996abb3f3ffaa9151 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Thu, 18 Apr 2024 14:19:31 +0530 Subject: [PATCH 5/5] refactor: change value for the env variable Signed-off-by: Manan Gupta --- .github/workflows/unit_race.yml | 2 +- .github/workflows/unit_test_mysql57.yml | 2 +- .github/workflows/unit_test_mysql80.yml | 2 +- test/ci_workflow_gen.go | 2 +- tools/unit_test_race.sh | 2 +- tools/unit_test_runner.sh | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml index 7b3f92b3599..75f8856fb85 100644 --- a/.github/workflows/unit_race.yml +++ b/.github/workflows/unit_race.yml @@ -130,7 +130,7 @@ jobs: # which musn't be more than 107 characters long. export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VTEVALENGINETEST="-1" + export VTEVALENGINETEST="0" eatmydata -- make unit_test_race | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_test_mysql57.yml b/.github/workflows/unit_test_mysql57.yml index b460897c1ec..75613169a2d 100644 --- a/.github/workflows/unit_test_mysql57.yml +++ b/.github/workflows/unit_test_mysql57.yml @@ -156,7 +156,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VTEVALENGINETEST="-1" + export VTEVALENGINETEST="0" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/.github/workflows/unit_test_mysql80.yml b/.github/workflows/unit_test_mysql80.yml index 9ed193a6085..8a675528819 100644 --- a/.github/workflows/unit_test_mysql80.yml +++ b/.github/workflows/unit_test_mysql80.yml @@ -153,7 +153,7 @@ jobs: export VTDATAROOT="/tmp/" export NOVTADMINBUILD=1 - export VTEVALENGINETEST="-1" + export VTEVALENGINETEST="0" eatmydata -- make unit_test | tee -a output.txt | go-junit-report -set-exit-code > report.xml diff --git a/test/ci_workflow_gen.go b/test/ci_workflow_gen.go index 7f502058700..af61a50bf0d 100644 --- a/test/ci_workflow_gen.go +++ b/test/ci_workflow_gen.go @@ -405,7 +405,7 @@ func generateClusterWorkflows(list []string, tpl string) { func generateUnitTestWorkflows() { for _, platform := range unitTestDatabases { - for _, evalengine := range []string{"1", "-1"} { + for _, evalengine := range []string{"1", "0"} { test := &unitTest{ Name: fmt.Sprintf("Unit Test (%s%s)", evalengineToString(evalengine), platform), Platform: string(platform), diff --git a/tools/unit_test_race.sh b/tools/unit_test_race.sh index 56ae1faef2c..3b6a137edf1 100755 --- a/tools/unit_test_race.sh +++ b/tools/unit_test_race.sh @@ -28,7 +28,7 @@ if [[ "$VTEVALENGINETEST" == "1" ]]; then packages_with_tests=$(echo "$packages_with_tests" | grep "evalengine") fi -if [[ "$VTEVALENGINETEST" == "-1" ]]; then +if [[ "$VTEVALENGINETEST" == "0" ]]; then packages_with_tests=$(echo "$packages_with_tests" | grep -v "evalengine") fi diff --git a/tools/unit_test_runner.sh b/tools/unit_test_runner.sh index c8ed7314bd9..2cfa02c5cc7 100755 --- a/tools/unit_test_runner.sh +++ b/tools/unit_test_runner.sh @@ -58,7 +58,7 @@ if [[ "$VTEVALENGINETEST" == "1" ]]; then packages_with_tests=$(echo "$packages_with_tests" | grep "evalengine") fi -if [[ "$VTEVALENGINETEST" == "-1" ]]; then +if [[ "$VTEVALENGINETEST" == "0" ]]; then # shellcheck disable=SC2086 packages_with_tests=$(echo $packages_with_tests | grep -v "evalengine") fi