diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1c93880b38ddf86cabc27a878fac6f07b55eb529..757428ea98b1edc228926daf66c82a6e272265f6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,9 +23,11 @@ variables: - 'test-long-self-test' - 'ivas-conformance' - 'ivas-conformance-linux' + - 'check-float-reference' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 + BASOP_REFERENCE_BRANCH: "ivas-float-update" default: @@ -63,6 +65,10 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' variables: IVAS_PIPELINE_NAME: 'Draft IVAS Conformance test -- Linux: $CI_COMMIT_BRANCH' + - if: $CI_PIPELINE_SOURCE == 'trigger' + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' + variables: + IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' stages: @@ -257,6 +263,8 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' when: never + - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' + when: never - when: on_success .rules-merge-request: @@ -396,7 +404,6 @@ check-self-test-names-pre: script: - python3 ci/check_self_test_names.py scripts/config/self_test.prm 135 - branch-is-up-to-date-with-main-post: extends: - .rules-merge-request @@ -408,6 +415,50 @@ branch-is-up-to-date-with-main-post: - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else echo "Your branch is behind main, possibly main changed during your pipeline run, run 'git merge origin/main' to update." exit 1; fi; +# for merges to basop-ci-branch, run the long test suite in reference generation mode to catch problems already here and not only in the BASOP repo +check-compatibility-with-basop-reference-branch: + extends: + - .test-job-linux + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "basop-ci-branch" + changes: + - tests/**/* + - scripts/**/* + - ci/**/* + - if: ($CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'trigger') && $MANUAL_PIPELINE_TYPE == 'check-float-reference' + - if: $CI_PIPELINE_SOURCE == 'push' + when: never + tags: + - ivas-linux-fast + script: + - git clone -b $BASOP_REFERENCE_BRANCH https://forge.3gpp.org/rep/sa4/audio/ivas-basop.git --single-branch + - make -j -C ivas-basop + - cp ivas-basop/IVAS_cod ./IVAS_cod_ref + - cp ivas-basop/IVAS_dec ./IVAS_dec_ref + - python3 ci/remove_unsupported_testcases.py scripts/config/self_test.prm + - python3 tests/create_short_testvectors.py + - exit_code1=0 + - exit_code2=0 + - python3 -m pytest tests/codec_be_on_mr_nonselection -v --update_ref 1 -m create_ref --html=report1.html --self-contained-html --junit-xml=report-junit1.xml || exit_code1=$? + - python3 -m pytest tests/codec_be_on_mr_nonselection -v --update_ref 1 -m create_ref_part2 --html=report2.html --self-contained-html --junit-xml=report-junit2.xml || exit_code2=$? + - zero_errors=$(cat report-junit1.xml report-junit2.xml | grep -c 'errors="0"') || true + - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi + - exit 0 + artifacts: + name: "check-float-reference--sha-$CI_COMMIT_SHORT_SHA--results" + when: always + expire_in: 1 month + paths: + - report-junit1.xml + - report-junit2.xml + - report1.html + - report2.html + expose_as: "check-float-reference results" + reports: + junit: + - report-junit1.xml + - report-junit2.xml + # --------------------------------------------------------------- # Build jobs # ---------------------------------------------------------------