Skip to content

CTest HOOTL Tests - 176/merge #987

CTest HOOTL Tests - 176/merge

CTest HOOTL Tests - 176/merge #987

Workflow file for this run

name: CTest
run-name: CTest HOOTL Tests - ${{ github.ref_name }}
on:
push:
branches: [ main ]
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ github.run_id }}
cancel-in-progress: true
jobs:
ctest:
name: Configure, Build, and Run HOOTLTest
runs-on: ${{ matrix.operatingSystem }}
permissions:
contents: read
actions: write
strategy:
fail-fast: true
matrix:
operatingSystem: [ ubuntu-latest, windows-latest, macos-latest ]
env:
SCCACHE_DIR: ${{ github.workspace }}/sccache
SCCACHE_LOG: "info"
SCCACHE_ERROR_LOG: ${{ github.workspace }}/sccache-error.log
steps:
- name: Checkout Repository
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Setup Shared Compilation Cache
uses: actions/cache@v5
with:
path: ${{ env.SCCACHE_DIR }}
key: sccache-${{ github.workflow }}-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}-${{ github.event.pull_request.number || github.ref }}
restore-keys: |
sccache-${{ github.workflow }}-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}-
sccache-${{ github.workflow }}-${{ runner.os }}-
- name: Setup Shared Compilation Cache
uses: mozilla-actions/[email protected]
- name: CMake Configuration (Unix)
if: matrix.operatingSystem != 'windows-latest'
shell: bash
run: |
set -o pipefail
echo "<details><summary>CMake Configuration (HOOTLTest)</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cmake --preset HOOTLTest -DCMAKE_C_COMPILER_LAUNCHER=sccache 2>&1 | tee -a $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
- name: CMake Configuration (Windows)
if: matrix.operatingSystem == 'windows-latest'
shell: pwsh
run: |
echo "<details><summary>CMake Configuration (HOOTLTest)</summary>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
cmake --preset HOOTLTest -DCMAKE_C_COMPILER_LAUNCHER=sccache 2>&1 | Tee-Object -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "</details>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
- name: CMake Build (Unix)
if: matrix.operatingSystem != 'windows-latest'
shell: bash
run: |
set -o pipefail
echo "<details><summary>CMake Build (HOOTLTest)</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cmake --build build/HOOTLTest 2>&1 | tee -a $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
- name: CMake Build (Windows)
if: matrix.operatingSystem == 'windows-latest'
shell: pwsh
run: |
echo "<details><summary>CMake Build (HOOTLTest)</summary>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
cmake --build build/HOOTLTest 2>&1 | Tee-Object -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "</details>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
- name: Run CTest (Unix)
if: matrix.operatingSystem != 'windows-latest'
shell: bash
run: |
set -o pipefail
echo "<details open><summary>Run CTest (HOOTLTest)</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
ctest --output-on-failure --test-dir build/HOOTLTest 2>&1 | tee -a $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
- name: Run CTest (Windows)
if: matrix.operatingSystem == 'windows-latest'
shell: pwsh
run: |
echo "<details open><summary>Run CTest (HOOTLTest)</summary>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
ctest --output-on-failure --test-dir build/HOOTLTest 2>&1 | Tee-Object -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "</details>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
- name: Shared Compilation Cache Errors (Unix)
if: matrix.operatingSystem != 'windows-latest'
shell: bash
run: |
set -o pipefail
if [ -f "$SCCACHE_ERROR_LOG" ]; then
echo "<details><summary>Shared Compilation Cache Errors</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cat "$SCCACHE_ERROR_LOG" | tee -a $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
fi
- name: Shared Compilation Cache Errors (Windows)
if: matrix.operatingSystem == 'windows-latest'
shell: pwsh
run: |
if (Test-Path $env:SCCACHE_ERROR_LOG) {
echo "<details><summary>Shared Compilation Cache Errors</summary>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
Get-Content $env:SCCACHE_ERROR_LOG | Tee-Object -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "``````" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
echo "</details>" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append
}
all:
name: Complete HOOTL Tests
needs: ctest
runs-on: ubuntu-slim
permissions: {}
steps:
- name: Complete All CTest Runs
run: |
echo "CTest has been executed for the HOOTLTest preset across all operating systems."
echo "Please refer to the individual job logs for detailed test results."