nightly_tests #463
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: 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 |