Skip to content

nightly_tests

nightly_tests #463

Workflow file for this run

name: nightly_tests
on:
schedule:
- cron: '0 22 * * *'
jobs:
gcc13_assertions_build:
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
defaults:
run:
shell: bash
outputs:
test-chunks: ${{ steps.set-matrix.outputs.chunk-array }}
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- uses: ./.github/actions/build_4C
with:
cmake-preset: docker_assertions
build-targets: full
build-directory: ${{ github.workspace }}/build
use-ccache: "true"
- uses: ./.github/actions/upload_directory
name: Upload 4C build
with:
directory: ${{ github.workspace }}/build
retention-days: 1
name: gcc13_assertions_build
- uses: ./.github/actions/chunk_test_suite
id: set-matrix
with:
build-directory: ${{ github.workspace }}/build
source-directory: ${{ github.workspace }}
number-of-chunks: 15
junit-report-artifact-name: gcc13_assertions_test_report.xml
gcc13_assertions_test:
needs: gcc13_assertions_build
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
strategy:
fail-fast: false
matrix:
test-chunk: ${{fromJson(needs.gcc13_assertions_build.outputs.test-chunks)}}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- name: Setup developer environment for testing
run: |
cd $GITHUB_WORKSPACE
git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: ./.github/actions/download_directory
with:
name: gcc13_assertions_build
destination: ${{ github.workspace }}/build
- name: Test
run: |
cd $GITHUB_WORKSPACE/build
time ctest -I $TEST_CHUNK -j `nproc` --output-on-failure --output-junit $GITHUB_WORKSPACE/gcc13_assertions_test_report-$TEST_CHUNK.xml
env:
TEST_CHUNK: ${{ matrix.test-chunk }}
- name: Upload test report
uses: actions/upload-artifact@v6
if: success() || failure()
with:
name: gcc13_assertions_test_report-${{ matrix.test-chunk }}.xml
path: |
${{ github.workspace }}/gcc13_assertions_test_report-${{ matrix.test-chunk }}.xml
retention-days: 7
gcc13_assertions_test_report:
needs: gcc13_assertions_test
runs-on: ubuntu-latest
if: success() || failure()
steps:
- uses: actions/checkout@v6
with:
sparse-checkout: .github
- uses: ./.github/actions/merge_junit_report_artifacts
with:
junit-report-base-name: gcc13_assertions_test_report
retention-days: 2
clang18_build:
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
defaults:
run:
shell: bash
outputs:
test-chunks: ${{ steps.set-matrix.outputs.chunk-array }}
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- uses: ./.github/actions/build_4C
with:
cmake-preset: docker_clang
build-targets: full
build-directory: ${{ github.workspace }}/build
use-ccache: "false"
additional-cmake-flags: "-DFOUR_C_CXX_FLAGS=-ftime-trace"
- uses: ./.github/actions/analyze_compile_time_tracing
with:
build-directory: ${{ github.workspace }}/build
aggregated-tracing-file: ${{ github.workspace }}/clang18_build_trace.json
report-summary-file: ${{ github.workspace }}/clang18_compile_time_report.txt
cleanup-individual-files: "true"
- uses: ./.github/actions/upload_directory
name: Upload 4C build
with:
directory: ${{ github.workspace }}/build
retention-days: 1
name: clang18_build
- name: Upload 4C schema
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }}-schema
path: |
${{ github.workspace }}/build/4C_schema.json
retention-days: 30
- name: Upload 4C metadata
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }}-metadata
path: |
${{ github.workspace }}/build/4C_metadata.yaml
retention-days: 30
- name: Upload compile time tracing summary
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }}-time-trace-summary
path: |
${{ github.workspace }}/clang18_compile_time_report.txt
- name: Upload Compile time Trace
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }}-time-trace
path: |
${{ github.workspace }}/clang18_build_trace.json
retention-days: 30
- uses: ./.github/actions/chunk_test_suite
id: set-matrix
with:
build-directory: ${{ github.workspace }}/build
source-directory: ${{ github.workspace }}
number-of-chunks: 15
junit-report-artifact-name: clang18_test_report.xml
clang18_compile_time_report:
needs: clang18_build
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout Catapult repo
run: | # version from 2025-10-13
git clone https://chromium.googlesource.com/catapult --depth 1
cd catapult
git fetch origin 2f71f97f0b2d6f885dbeac39a7460863b10a14c0 --depth 1
git checkout FETCH_HEAD
- name: Download aggregated ninja trace
uses: actions/download-artifact@v7
with:
name: clang18_build-time-trace
path: ${{ github.workspace }}
- name: Generate compile time trace for clang 18 build
run: |
catapult/tracing/bin/trace2html $GITHUB_WORKSPACE/clang18_build_trace.json --output=$GITHUB_WORKSPACE/clang18_compile_time_report.html
- name: Upload trace
uses: actions/upload-artifact@v6
with:
name: clang18_compile_time_report
path: |
${{ github.workspace }}/clang18_compile_time_report.html
retention-days: 90
clang18_test:
needs: clang18_build
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
strategy:
fail-fast: false
matrix:
test-chunk: ${{fromJson(needs.clang18_build.outputs.test-chunks)}}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- name: Setup developer environment for testing
run: |
cd $GITHUB_WORKSPACE
git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: ./.github/actions/download_directory
with:
name: clang18_build
destination: ${{ github.workspace }}/build
- name: Test
run: |
cd $GITHUB_WORKSPACE/build
time ctest -I $TEST_CHUNK -j `nproc` --output-on-failure --output-junit $GITHUB_WORKSPACE/clang18_test_report-$TEST_CHUNK.xml
env:
TEST_CHUNK: ${{ matrix.test-chunk }}
- name: Upload test report
uses: actions/upload-artifact@v6
if: success() || failure()
with:
name: clang18_test_report-${{ matrix.test-chunk }}.xml
path: |
${{ github.workspace }}/clang18_test_report-${{ matrix.test-chunk }}.xml
retention-days: 1
clang18_test_report:
needs: clang18_test
runs-on: ubuntu-latest
if: success() || failure()
steps:
- uses: actions/checkout@v6
with:
sparse-checkout: .github
- uses: ./.github/actions/merge_junit_report_artifacts
with:
junit-report-base-name: clang18_test_report
retention-days: 2
clang18_build_oldest_supported_dependencies:
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04-oldest-supported:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
defaults:
run:
shell: bash
outputs:
test-chunks: ${{ steps.set-matrix.outputs.chunk-array }}
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- uses: ./.github/actions/build_4C
with:
cmake-preset: docker_clang
build-targets: full
build-directory: ${{ github.workspace }}/build
use-ccache: "false"
- uses: ./.github/actions/upload_directory
name: Upload 4C build
with:
directory: ${{ github.workspace }}/build
retention-days: 1
name: clang18_build_oldest_supported_dependencies
- uses: ./.github/actions/chunk_test_suite
id: set-matrix
with:
build-directory: ${{ github.workspace }}/build
source-directory: ${{ github.workspace }}
number-of-chunks: 15
junit-report-artifact-name: clang18_test_oldest_supported_dependencies_report.xml
clang18_test_oldest_supported_dependencies:
needs: clang18_build_oldest_supported_dependencies
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04-oldest-supported:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
strategy:
fail-fast: false
matrix:
test-chunk: ${{fromJson(needs.clang18_build_oldest_supported_dependencies.outputs.test-chunks)}}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- name: Setup developer environment for testing
run: |
cd $GITHUB_WORKSPACE
git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: ./.github/actions/download_directory
with:
name: clang18_build_oldest_supported_dependencies
destination: ${{ github.workspace }}/build
- name: Test
run: |
cd $GITHUB_WORKSPACE/build
time ctest -I $TEST_CHUNK -j `nproc` --output-on-failure --output-junit $GITHUB_WORKSPACE/clang18_test_oldest_supported_dependencies_report-$TEST_CHUNK.xml
env:
TEST_CHUNK: ${{ matrix.test-chunk }}
- name: Upload test report
uses: actions/upload-artifact@v6
if: success() || failure()
with:
name: clang18_test_oldest_supported_dependencies_report-${{ matrix.test-chunk }}.xml
path: |
${{ github.workspace }}/clang18_test_oldest_supported_dependencies_report-${{ matrix.test-chunk }}.xml
retention-days: 1
gcc13_no_optional_dependencies_build:
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
defaults:
run:
shell: bash
outputs:
test-chunks: ${{ steps.set-matrix.outputs.chunk-array }}
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- uses: ./.github/actions/build_4C
with:
cmake-preset: docker_no_optional_dependencies
build-targets: full
build-directory: ${{ github.workspace }}/build
use-ccache: "false"
- uses: ./.github/actions/upload_directory
name: Upload 4C build
with:
directory: ${{ github.workspace }}/build
retention-days: 1
name: gcc13_no_optional_dependencies_build
- uses: ./.github/actions/chunk_test_suite
id: set-matrix
with:
build-directory: ${{ github.workspace }}/build
source-directory: ${{ github.workspace }}
number-of-chunks: 15
junit-report-artifact-name: gcc13_no_optional_dependencies_test_report.xml
gcc13_no_optional_dependencies_test:
needs: gcc13_no_optional_dependencies_build
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
strategy:
fail-fast: false
matrix:
test-chunk: ${{fromJson(needs.gcc13_no_optional_dependencies_build.outputs.test-chunks)}}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- name: Setup developer environment for testing
run: |
cd $GITHUB_WORKSPACE
git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: ./.github/actions/download_directory
with:
name: gcc13_no_optional_dependencies_build
destination: ${{ github.workspace }}/build
- name: Test
run: |
cd $GITHUB_WORKSPACE/build
time ctest -I $TEST_CHUNK -j `nproc` --output-on-failure --output-junit $GITHUB_WORKSPACE/gcc13_no_optional_dependencies_test_report-$TEST_CHUNK.xml
env:
TEST_CHUNK: ${{ matrix.test-chunk }}
- name: Upload test report
uses: actions/upload-artifact@v6
if: success() || failure()
with:
name: gcc13_no_optional_dependencies_test_report-${{ matrix.test-chunk }}.xml
path: |
${{ github.workspace }}/gcc13_no_optional_dependencies_test_report-${{ matrix.test-chunk }}.xml
retention-days: 1
gcc13_no_optional_dependencies_test_report:
needs: gcc13_no_optional_dependencies_test
runs-on: ubuntu-latest
if: success() || failure()
steps:
- uses: actions/checkout@v6
with:
sparse-checkout: .github
- uses: ./.github/actions/merge_junit_report_artifacts
with:
junit-report-base-name: gcc13_no_optional_dependencies_test_report
retention-days: 2
gcc13_asan_build:
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
defaults:
run:
shell: bash
outputs:
test-chunks: ${{ steps.set-matrix.outputs.chunk-array }}
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- uses: ./.github/actions/build_4C
with:
cmake-preset: docker_asan
build-targets: full
build-directory: ${{ github.workspace }}/build
use-ccache: "false" # no ccache since asan is only tested once per day
- uses: ./.github/actions/upload_directory
name: Upload 4C build
with:
directory: ${{ github.workspace }}/build
retention-days: 1
name: gcc13_asan_build
- uses: ./.github/actions/chunk_test_suite
id: set-matrix
with:
build-directory: ${{ github.workspace }}/build
source-directory: ${{ github.workspace }}
number-of-chunks: 15
junit-report-artifact-name: gcc13_asan_test_report.xml
gcc13_asan_test:
needs: gcc13_asan_build
runs-on: ubuntu-latest
container:
image: ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:9ffec977
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
strategy:
fail-fast: false
matrix:
test-chunk: ${{fromJson(needs.gcc13_asan_build.outputs.test-chunks)}}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- name: Check docker hash
uses: ./.github/actions/compute-and-check-dependencies-hash
- name: Setup developer environment for testing
run: |
cd $GITHUB_WORKSPACE
git config --global --add safe.directory $GITHUB_WORKSPACE
- uses: ./.github/actions/download_directory
with:
name: gcc13_asan_build
destination: ${{ github.workspace }}/build
- name: Test
run: |
cd $GITHUB_WORKSPACE/build
time ctest -I $TEST_CHUNK -j `nproc` --output-on-failure --output-junit $GITHUB_WORKSPACE/gcc13_asan_test_report-$TEST_CHUNK.xml
env:
TEST_CHUNK: ${{ matrix.test-chunk }}
- name: Upload test report
uses: actions/upload-artifact@v6
if: success() || failure()
with:
name: gcc13_asan_test_report-${{ matrix.test-chunk }}.xml
path: |
${{ github.workspace }}/gcc13_asan_test_report-${{ matrix.test-chunk }}.xml
retention-days: 1
gcc13_asan_test_report:
needs: gcc13_asan_test
runs-on: ubuntu-latest
if: success() || failure()
steps:
- uses: actions/checkout@v6
with:
sparse-checkout: .github
- uses: ./.github/actions/merge_junit_report_artifacts
with:
junit-report-base-name: gcc13_asan_test_report
retention-days: 2