🔬 Test commit c780c6afd423f27d93b6ff42a6f5fbad6f3b9e50 #1045
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: 🔬 Test | |
| run-name: "🔬 Test ${{ github.event.schedule == '00 20 * * *' && 'master HEAD in daemon + ' || 'commit' }} ${{ github.sha }}" | |
| #on: workflow_call | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - columnar-* | |
| pull_request: | |
| branches: [ master ] | |
| types: [opened, synchronize, reopened, labeled, unlabeled] | |
| schedule: | |
| - cron: '00 20 * * *' | |
| # cancels the previous workflow run when a new one appears in the same branch (e.g. master or a PR's branch) | |
| concurrency: | |
| group: CI_${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| commit_info: | |
| name: Commit info | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - run: | | |
| echo "# Automated Tests of commit ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY | |
| [[ "${{ github.event.schedule }}" == "00 20 * * *" ]] && echo "* **Nightly test, testing master's head with the daemon's master head**" >> $GITHUB_STEP_SUMMARY | |
| echo "* Commit URL: [${{ github.sha }}](/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY | |
| echo "* Initiated by: [@${{ github.actor }}](https://github.com/${{ github.actor }})" >> $GITHUB_STEP_SUMMARY | |
| echo "* Ref: ${{ github.ref_type }} \"${{ github.ref_name }}\"" >> $GITHUB_STEP_SUMMARY | |
| echo "* Attempt: ${{ github.run_attempt }}" >> $GITHUB_STEP_SUMMARY | |
| check_branch: | |
| name: Check branch existence | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| manticore_locator: ${{ steps.set_locator.outputs.manticore_locator }} | |
| steps: | |
| - name: Check if branch exists in manticoresoftware/manticoresearch | |
| id: check_branch | |
| if: github.ref_name != 'master' | |
| run: | | |
| # Extract the actual branch name for pull requests | |
| if [[ "${{ github.event_name }}" == "pull_request" ]]; then | |
| BRANCH_NAME="${{ github.event.pull_request.head.ref }}" | |
| else | |
| BRANCH_NAME="${{ github.ref_name }}" | |
| fi | |
| HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/manticoresoftware/manticoresearch/branches/$BRANCH_NAME) | |
| if [ "$HTTP_STATUS" -eq "200" ]; then | |
| echo "branch_exists=true" >> $GITHUB_OUTPUT | |
| echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT | |
| else | |
| echo "branch_exists=false" >> $GITHUB_OUTPUT | |
| echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Set Manticore Locator | |
| id: set_locator | |
| run: | | |
| if [[ "${{ github.event.schedule }}" == "00 20 * * *" ]]; then | |
| echo "manticore_locator=GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master" >> $GITHUB_OUTPUT | |
| elif [[ "${{ github.ref_name }}" != "master" && "${{ steps.check_branch.outputs.branch_exists }}" == "true" ]]; then | |
| echo "manticore_locator=GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG ${{ steps.check_branch.outputs.branch_name }}" >> $GITHUB_OUTPUT | |
| else | |
| echo "manticore_locator=" >> $GITHUB_OUTPUT | |
| fi | |
| win_bundle: | |
| name: Windows supplementary files preparation | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Check out cache | |
| id: cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| bundle | |
| boost_1_75_0 | |
| enableCrossOsArchive: true | |
| key: win_bundle | |
| lookup-only: true | |
| - name: Extract Windows bundle from Windows sysroot | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| wget https://repo.manticoresearch.com/repository/sysroots/roots_nov22/sysroot_windows_x64.tar.xz | |
| tar -xvf sysroot_windows_x64.tar.xz | |
| mv diskc/winbundle bundle | |
| - name: Extract Boost to put it to the cache | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| wget https://repo.manticoresearch.com/repository/ci/boost_1_75_0.tgz | |
| tar -xf boost_1_75_0.tgz | |
| build_linux_release: | |
| name: Linux release build | |
| needs: check_branch | |
| uses: ./.github/workflows/build_template.yml | |
| with: | |
| MANTICORE_LOCATOR: ${{ needs.check_branch.outputs.manticore_locator }} | |
| build_linux_debug: | |
| name: Linux debug build | |
| needs: check_branch | |
| uses: ./.github/workflows/build_template.yml | |
| with: | |
| CTEST_CONFIGURATION_TYPE: "Debug" | |
| MANTICORE_LOCATOR: ${{ needs.check_branch.outputs.manticore_locator }} | |
| build_windows: | |
| name: Windows x64 build | |
| needs: check_branch | |
| uses: ./.github/workflows/build_template.yml | |
| with: | |
| DISTR: windows | |
| arch: x64 | |
| CTEST_CMAKE_GENERATOR: "Ninja Multi-Config" | |
| CTEST_CONFIGURATION_TYPE: Debug | |
| cache_key: build_windows_x64 | |
| artifact_list: "build/columnar/Debug/lib_manticore_columnar.dll build/secondary/Debug/lib_manticore_secondary.dll build/_deps/manticore-build/src/Debug/indexer.exe build/_deps/manticore-build/src/Debug/searchd.exe" # | |
| MANTICORE_LOCATOR: ${{ needs.check_branch.outputs.manticore_locator }} | |
| test_linux_debug: | |
| name: Linux debug mode tests | |
| needs: [build_linux_debug, check_branch] | |
| uses: ./.github/workflows/test_template.yml | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| name: [1_54,55_108,109_162,163_216,217_270,271_324,325_378,379_and_on] | |
| include: | |
| - name: 1_54 | |
| start: 1 | |
| end: 54 | |
| - name: 55_108 | |
| start: 55 | |
| end: 108 | |
| - name: 109_162 | |
| start: 109 | |
| end: 162 | |
| - name: 163_216 | |
| start: 163 | |
| end: 216 | |
| - name: 217_270 | |
| start: 217 | |
| end: 270 | |
| - name: 271_324 | |
| start: 271 | |
| end: 324 | |
| - name: 325_378 | |
| start: 325 | |
| end: 378 | |
| - name: 379_and_on | |
| start: 379 | |
| end: 999999 | |
| with: | |
| CTEST_CONFIGURATION_TYPE: "Debug" | |
| CTEST_START: ${{ matrix.start }} | |
| CTEST_END: ${{ matrix.end }} | |
| MANTICORE_LOCATOR: ${{ needs.check_branch.outputs.manticore_locator }} | |
| artifact_name: debug_test_${{ matrix.name }} | |
| xml_command: "cd build; cp -r Testing/2*/Test.xml .; xsltproc -o junit_tests_${{ matrix.name }}.xml ../misc/junit/ctest2junit.xsl Test.xml" | |
| timeout: 10 | |
| debug_tests_report: | |
| name: Debug mode tests summary and report | |
| needs: test_linux_debug | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Download test report artifact 1_54 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_1_54 | |
| path: . | |
| - name: Download test report artifact 55_108 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_55_108 | |
| path: . | |
| - name: Download test report artifact 109_162 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_109_162 | |
| path: . | |
| - name: Download test report artifact 163_216 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_163_216 | |
| path: . | |
| - name: Download test report artifact 217_270 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_217_270 | |
| path: . | |
| - name: Download test report artifact 271_324 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_271_324 | |
| path: . | |
| - name: Download test report artifact 325_378 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_325_378 | |
| path: . | |
| - name: Download test report artifact 379_and_on | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: debug_test_379_and_on | |
| path: . | |
| - name: Publish test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| continue-on-error: true | |
| with: | |
| check_name: Linux debug test results | |
| files: build/junit*.xml | |
| compare_to_earlier_commit: false | |
| - name: Per-test results | |
| run: | | |
| for file in build/status*; do echo -n "$file: "; cat "$file"; done | |
| grep -o "success" build/status* | wc -l | awk '{if ($1==8) exit 0; else {print "Found only "$1" successful runs out of 8"; exit 1}}' | |
| shell: bash | |
| - name: Delete unneded per-shard artifacts | |
| if: always() | |
| uses: geekyeggo/delete-artifact@v2 | |
| with: | |
| name: debug_test_* | |
| failOnError: false | |
| - name: Upload combined artifacts | |
| if: always() | |
| continue-on-error: true | |
| uses: manticoresoftware/upload_artifact_with_retries@v4 | |
| with: | |
| name: debug_test_resuls | |
| path: build | |
| test_linux_release: | |
| name: Linux release mode tests | |
| needs: [build_linux_release, check_branch] | |
| uses: ./.github/workflows/test_template.yml | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| name: [1_54,55_108,109_162,163_216,217_270,271_324,325_378,379_and_on] | |
| include: | |
| - name: 1_54 | |
| start: 1 | |
| end: 54 | |
| - name: 55_108 | |
| start: 55 | |
| end: 108 | |
| - name: 109_162 | |
| start: 109 | |
| end: 162 | |
| - name: 163_216 | |
| start: 163 | |
| end: 216 | |
| - name: 217_270 | |
| start: 217 | |
| end: 270 | |
| - name: 271_324 | |
| start: 271 | |
| end: 324 | |
| - name: 325_378 | |
| start: 325 | |
| end: 378 | |
| - name: 379_and_on | |
| start: 379 | |
| end: 999999 | |
| with: | |
| CTEST_CONFIGURATION_TYPE: "RelWithDebInfo" | |
| CTEST_START: ${{ matrix.start }} | |
| CTEST_END: ${{ matrix.end }} | |
| MANTICORE_LOCATOR: ${{ needs.check_branch.outputs.manticore_locator }} | |
| artifact_name: release_test_${{ matrix.name }} | |
| xml_command: "cd build; cp -r Testing/2*/Test.xml .; xsltproc -o junit_tests_${{ matrix.name }}.xml ../misc/junit/ctest2junit.xsl Test.xml" | |
| timeout: 10 | |
| release_tests_report: | |
| name: release mode tests summary and report | |
| needs: test_linux_release | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Download test report artifact 1_54 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_1_54 | |
| path: . | |
| - name: Download test report artifact 55_108 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_55_108 | |
| path: . | |
| - name: Download test report artifact 109_162 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_109_162 | |
| path: . | |
| - name: Download test report artifact 163_216 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_163_216 | |
| path: . | |
| - name: Download test report artifact 217_270 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_217_270 | |
| path: . | |
| - name: Download test report artifact 271_324 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_271_324 | |
| path: . | |
| - name: Download test report artifact 325_378 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_325_378 | |
| path: . | |
| - name: Download test report artifact 379_and_on | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: release_test_379_and_on | |
| path: . | |
| - name: Publish test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| continue-on-error: true | |
| with: | |
| check_name: Linux release test results | |
| files: build/junit*.xml | |
| compare_to_earlier_commit: false | |
| - name: Per-test results | |
| run: | | |
| for file in build/status*; do echo -n "$file: "; cat "$file"; done | |
| grep -o "success" build/status* | wc -l | awk '{if ($1==8) exit 0; else {print "Found only "$1" successful runs out of 8"; exit 1}}' | |
| shell: bash | |
| - name: Delete unneded per-shard artifacts | |
| if: always() | |
| uses: geekyeggo/delete-artifact@v2 | |
| with: | |
| name: release_test_* | |
| failOnError: false | |
| - name: Upload combined artifacts | |
| if: always() | |
| continue-on-error: true | |
| uses: manticoresoftware/upload_artifact_with_retries@v4 | |
| with: | |
| name: release_test_resuls | |
| path: build | |
| test_windows: | |
| name: Windows tests | |
| needs: [build_windows, win_bundle, check_branch] | |
| uses: ./.github/workflows/win_test_template.yml | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| name: [1_86,87_172,173_258,259_344,345_and_on] | |
| include: | |
| - name: 1_86 | |
| start: 1 | |
| end: 86 | |
| - name: 87_172 | |
| start: 87 | |
| end: 172 | |
| - name: 173_258 | |
| start: 173 | |
| end: 258 | |
| - name: 259_344 | |
| start: 259 | |
| end: 344 | |
| - name: 345_and_on | |
| start: 345 | |
| end: 999999 | |
| with: | |
| CTEST_START: ${{ matrix.start }} | |
| CTEST_END: ${{ matrix.end }} | |
| MANTICORE_LOCATOR: ${{ needs.check_branch.outputs.manticore_locator }} | |
| artifact_name: windows_test_${{ matrix.name }} | |
| windows_tests_report: | |
| name: Windows tests summary and report | |
| needs: test_windows | |
| runs-on: ubuntu-22.04 | |
| container: | |
| image: manticoresearch/ubertests_ctest:3263_mar_2024 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Download test report artifact 1_86 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: windows_test_1_86 | |
| path: . | |
| - name: Download test report artifact 87_172 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: windows_test_87_172 | |
| path: . | |
| - name: Download test report artifact 173_258 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: windows_test_173_258 | |
| path: . | |
| - name: Download test report artifact 259_344 | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: windows_test_259_344 | |
| path: . | |
| - name: Download test report artifact 345_and_on | |
| uses: manticoresoftware/download_artifact_with_retries@v3 | |
| continue-on-error: true | |
| with: | |
| name: windows_test_345_and_on | |
| path: . | |
| - name: Convert the XML to JUnit format | |
| run: for dir in build/xml_*; do xsltproc -o $dir/junit_tests.xml misc/junit/ctest2junit.xsl $dir/Test.xml; done; | |
| shell: bash | |
| - name: Publish test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| with: | |
| check_name: Windows test results | |
| compare_to_earlier_commit: false | |
| files: build/xml_*/junit_tests.xml | |
| - name: Per-test results | |
| run: | | |
| for file in build/status*; do echo -n "$file: "; cat "$file"; done | |
| grep -o "success" build/status* | wc -l | awk '{if ($1==5) exit 0; else {print "Found only "$1" successful runs out of 5"; exit 1}}' | |
| shell: bash | |
| - name: Delete unneded per-shard artifacts | |
| if: always() | |
| uses: geekyeggo/delete-artifact@v2 | |
| with: | |
| name: windows_test_* | |
| failOnError: false | |
| - name: Upload combined artifacts | |
| if: always() | |
| continue-on-error: true | |
| uses: manticoresoftware/upload_artifact_with_retries@v4 | |
| with: | |
| name: windows_test_resuls | |
| path: build |