stages: # List of stages for jobs, and their order of execution - build - test - clang - coverage default: tags: - shell - CREMI workflow: rules: - if: $CI_COMMIT_MESSAGE =~ /-draft$/ when: never - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH build-job-debug: # This job runs in the build stage, which runs first. allow_failure: false stage: build script: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/c99-gcc .. - make VERBOSE=ON -j 18 | tee ../build.log artifacts: expire_in: 10 minutes paths: - build.log build-job-release: # This job runs in the build stage, which runs first. allow_failure: false stage: build script: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/c99-gcc .. - make VERBOSE=ON -j 18 | tee ../build.log artifacts: expire_in: 10 minutes paths: - build.log test-v1-job: # This job runs in the test stage. needs: - job: build-job-release artifacts: false - job: build-job-debug artifacts: false stage: test # It only starts when the job in the build stage completes successfully. script: - mkdir -p build - cd build - echo "building project" - cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/c99-gcc .. - make VERBOSE=ON -j 18 - echo "Running tests V1..." - ctest -R v1 | tee ../test-v1-job.log artifacts: expire_in: 10 minutes paths: - test-v1-job.log test-v2-job: # This job runs in the test stage. needs: - job: build-job-release artifacts: false - job: build-job-debug artifacts: false stage: test # It only starts when the job in the build stage completes successfully. script: - mkdir -p build - cd build - echo "building project" - cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/c99-gcc .. - make VERBOSE=ON -j 18 - echo "Running tests V2..." - ctest -R v2 | tee ../test-v2-job.log artifacts: expire_in: 10 minutes paths: - test-v2-job.log make-test-job: needs: - job: build-job-release artifacts: false - job: build-job-debug artifacts: false stage: test script: - mkdir -p build - cd build - echo "building project" - cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/c99-gcc .. - make VERBOSE=ON -j 18 - echo "Running tests ..." - make test | tee ../make-test-job.log allow_failure: true artifacts: expire_in: 10 minutes paths: - make-test-job.log mem-check-job: needs: - job: make-test-job artifacts: false stage: test script: - mkdir -p build - cd build - echo "building project" - cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/c99-gcc .. - make VERBOSE=ON -j 18 - echo "Running Memory Checks..." - make ExperimentalMemCheck | tee ../mem-check-job.log artifacts: expire_in: 10 minutes paths: - mem-check-job.log ### clang clang-job: needs: - job: build-job-release artifacts: false - job: build-job-debug artifacts: false stage: clang script: - if [ $(clang-format -style=file -output-replacements-xml *.[c\|h] | grep -c "