Skip to content

config-generator: non-interactive mode #360

config-generator: non-interactive mode

config-generator: non-interactive mode #360

Workflow file for this run

# This is the testing workflow
name: CTest
# Controls when the action will run. Triggers the workflow on push or pull request events
on:
push:
branches-ignore:
# If you want the CI to not run, call your branch work-in-progress by naming it `something-WIP` or `something_WIP`
- '*-WIP'
- '*_WIP'
pull_request:
types: [review_requested, ready_for_review]
branches:
- master
# Abort running jobs if a new one is triggered
concurrency:
# github.ref = refs/heads/<branch_name> for push or refs/pull/<pr_number>/merge for pull request
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "test"
test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# How to update container: See ../../test/docker/Readme.md
container: ghcr.io/hsu-hpc/testmamico
##################################################################
# @author Piet
# REASONS WHY THIS TIMEOUT WAS SET:
# (a) To catch an accidental push of a non-terminating or very long running test that consumes all our minutes
# (b) To prevent us from slowly collecting too many unit tests with medium run times
# (c) Long CI run time slows down development, results should be available quickly
# (d) We should be able to push many times per month, without using up our compute budget
# (e) Compute budget currently is 2000 minutes per month
# RUN TIMES WHEN THIS TIMEOUT WAS DEFINED:
# (Initialize containers) = 22s
# (Compiletest) = 2m 44s
# (CMake) = 25s
# (Build) = 10s
# (Test) [26 unit tests] = 9s
# [Total] = 4m
# HOW TO PROCEED IF YOU READ THESE LINES BECAUSE THE TIMEOUT WAS HIT:
# (a) Check that container init time is < 30s (otherwise check host+connection)
# (b) Check that Compiletest time is < 3m (otherwise modify compiletest)
# (c) Check that combined CMake and Build time is < 60s (Otherwise check CMake build system)
# (d) Check that runtime of each unit test is < 5000 ms (Otherwise modify or disable this test)
# (e) Check that average unit test runtime is < 750 ms (Otherwise optimize long-running unit tests and/or check 'mpirun' set-up time)
# HOW NOT TO PROCEED IF YOU READ THESE LINES BECAUSE THE TIMEOUT WAS HIT:
# (z) increase timeout (unless total number of unit tests is > 500, then change to 20)
##################################################################
timeout-minutes: 10
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Compiletest
run: |
mkdir build; cd build
cmake -DCOMPILETEST_MODES=Release ..
make compiletest
- name: CMake
run: cd build; cmake -DBUILD_TESTING=ON -DBUILD_WITH_MPI=ON .
- name: Build
run: cd build; make -j4 testmamico
- name: Test
run: cd build; ctest --output-on-failure