Skip to content

🔬 Test master HEAD in daemon + 9dbdc6cf535fd5bb6b22de0a9b5d71f47821b851 #846

🔬 Test master HEAD in daemon + 9dbdc6cf535fd5bb6b22de0a9b5d71f47821b851

🔬 Test master HEAD in daemon + 9dbdc6cf535fd5bb6b22de0a9b5d71f47821b851 #846

Workflow file for this run

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
win_bundle:
name: Windows supplementary files preparation
runs-on: ubuntu-22.04
steps:
- name: Check out cache
id: cache
uses: actions/cache@v3.3.1
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
uses: ./.github/workflows/build_template.yml
with:
MANTICORE_LOCATOR: ${{ github.event.schedule == '00 20 * * *' && 'GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master' || '' }}
build_linux_debug:
name: Linux debug build
uses: ./.github/workflows/build_template.yml
with:
CTEST_CONFIGURATION_TYPE: "Debug"
MANTICORE_LOCATOR: ${{ github.event.schedule == '00 20 * * *' && 'GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master' || '' }}
build_windows:
name: Windows x64 build
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: ${{ github.event.schedule == '00 20 * * *' && 'GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master' || '' }}
test_linux_debug:
name: Linux debug mode tests
needs: build_linux_debug
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: ${{ github.event.schedule == '00 20 * * *' && 'GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master' || '' }}
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
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: ${{ github.event.schedule == '00 20 * * *' && 'GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master' || '' }}
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]
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: ${{ github.event.schedule == '00 20 * * *' && 'GIT_REPOSITORY https://github.com/manticoresoftware/manticoresearch.git GIT_TAG master' || '' }}
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