diff --git a/README.md b/README.md index 60405aaf47b52942b65c2ae112f623f9f784621c..597cd6e2c4cbb625943feb257f2c40aa27d9ecf9 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,9 @@ This repository is mainly meant to share scripts and configs between the two rep ``` bash . ├── includes # folder for (possibly shared) yaml files which are included in the main ones -│   ├── default-variables-basop.yml -│   ├── default-variables.yml -│   ├── job-templates.yml -│   ├── rules-basop.yml -│   └── rules.yml +│   ├── .. ├── main-basop.yml # CI config for ivas-basop repo +├── main-float.yml # CI config for ivas-basop repo ├── main.yml # shared CI config ├── ... └── snippets # Folder for scripts used in CI only. Shared ones go in the folder directly. Can be small ones or bigger scripts which implement a whole job @@ -47,7 +44,7 @@ include: file: main-basop.yml ``` -This way, any CI change can be developed centrally in this repository and does not need to be merged/ported to different repositories/branches (e.g. keeping ivas-basop main and ivas-float-update in synch). +This way, any CI change can be developed centrally in this repository and does not need to be merged/ported to different repositories/branches. ### Adding new CI code diff --git a/includes/default-variables-basop.yml b/includes/default-variables-basop.yml index 76ac9679c3152622f305b8f7bd8bd96b3d902f80..daf56b0b4d69cdc55d93a9ac39e31daf233699a9 100644 --- a/includes/default-variables-basop.yml +++ b/includes/default-variables-basop.yml @@ -1,6 +1,5 @@ variables: EVS_BE_TEST_DIR_BASOP: "/usr/local/be_2_evs_basop" - # TODO: cleanup and use global var defined in ivas-codec-ci FLOAT_REF_BRANCH_MERGE_SOURCE: "" SCRIPTS_DIR: "/usr/local/scripts" LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/renderer --param_file scripts/config/self_test_ltv.prm --use_ltv" @@ -9,26 +8,31 @@ variables: SHORT_TEST_SUITE_ENCODER: "tests/codec_be_on_mr_nonselection/test_param_file.py --param_file scripts/config/self_test_basop_encoder.prm" LONG_TEST_SUITE_ENCODER: "tests/codec_be_on_mr_nonselection/test_param_file.py --param_file scripts/config/self_test_ltv_basop_encoder.prm" TEST_SUITE: "" - # These path variables are used by the pytest calls. - # They can be overwritten in the job templates to e.g. only test encoder or decoder in the chain + ### These path variables are used by the pytest calls. + ### They can be overwritten in the job definitions in the variables: section to e.g. only test encoder or decoder in the chain + ### E.g. a job that tests the BASOP encoder against the float ref via MLD etc. would overwrite DUT_DECODER_PATH with REF_DECODER_PATH in its variables: section + # "DUT_" - used in merge request pipelines for the branch build (Device Under Test) DUT_ENCODER_PATH: "./IVAS_cod_dut" DUT_DECODER_PATH: "./IVAS_dec_dut" DUT_RENDERER_PATH: "./IVAS_rend_dut" DUT_POST_RENDERER_PATH: "./ISAR_post_rend_dut" + # "REF_" - used in merge request regression jobs for the floating-point ref (ivas-codec main) REF_ENCODER_PATH: "./IVAS_cod_ref" REF_DECODER_PATH: "./IVAS_dec_ref" REF_RENDERER_PATH: "./IVAS_rend_ref" REF_POST_RENDERER_PATH: "./ISAR_post_rend_ref" + # "MERGE_TARGET_" - used in merge request jobs to denote the build from the target branch (mostly main) MERGE_TARGET_ENCODER_PATH: "./IVAS_cod_merge_target" MERGE_TARGET_DECODER_PATH: "./IVAS_dec_merge_target" MERGE_TARGET_RENDERER_PATH: "./IVAS_rend_merge_target" MERGE_TARGET_POST_RENDERER_PATH: "./ISAR_post_rend_merge_target" + # "MERGE_SOURCE_FLOAT_REF_" - used for the respective float reference branch of an MR. Can be main or the respective companion branch in ivas-codec repo MERGE_SOURCE_FLOAT_REF_ENCODER_PATH: "./IVAS_cod_merge_source_float_ref" MERGE_SOURCE_FLOAT_REF_DECODER_PATH: "./IVAS_dec_merge_source_float_ref" MERGE_SOURCE_FLOAT_REF_RENDERER_PATH: "./IVAS_rend_merge_source_float_ref" MERGE_SOURCE_FLOAT_REF_POST_RENDERER_PATH: "./ISAR_post_rend_merge_source_float_ref" - # These path variables are used for building the binaries - # They should never be overwritten! + ### These path variables are used for building the binaries + ### They should never be overwritten! DUT_ENCODER_PATH_FOR_BUILD_DO_NOT_MODIFY: "./IVAS_cod_dut" DUT_DECODER_PATH_FOR_BUILD_DO_NOT_MODIFY: "./IVAS_dec_dut" DUT_RENDERER_PATH_FOR_BUILD_DO_NOT_MODIFY: "./IVAS_rend_dut" diff --git a/includes/smoke-test.yml b/includes/smoke-test.yml new file mode 100644 index 0000000000000000000000000000000000000000..897838ce119d9cf0186b93dd3c762c835a3c0884 --- /dev/null +++ b/includes/smoke-test.yml @@ -0,0 +1,28 @@ +# test that runs all modes with 1s input signals +.smoke-test-template: + extends: + - .test-job-linux-needs-testv-dir + tags: + - ivas-linux-fast + before_script: + - !reference [.test-job-linux-needs-testv-dir, before_script] + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + # LTV update needed as ltv ISM metadata files are used + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/update-ltv-repo.sh + after_script: + ### analyze for failures + - if ! [ -s smoke_test_output.txt ] || ! [ -s smoke_test_output_jbm.txt ] || ! [ -s smoke_test_output_hrtf.txt ]; then echo "Error in smoke test"; exit 1; fi + - ret_val=0 + - if cat smoke_test_output.txt | grep -c "failed"; then echo "Smoke test without JBM failed"; ret_val=1; fi + - if cat smoke_test_output_jbm.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; ret_val=1; fi + - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; ret_val=1; fi + - exit $ret_val + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + expire_in: 1 week + when: always + paths: + - smoke_test_output.txt + - smoke_test_output_jbm.txt + - smoke_test_output_hrtf.txt + expose_as: "Smoke test results" diff --git a/main-basop.yml b/main-basop.yml index 3c168bc2a75249b5ca15e547399a2032a6485c4d..0bf9d12bbe77e0c80d7efe6c3ce35671280c4b11 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3,6 +3,7 @@ include: - local: includes/default-variables-basop.yml - local: includes/rules-basop.yml - local: includes/complexity-jobs.yml + - local: includes/smoke-test.yml - local: includes/build-jobs.yml stages: @@ -131,12 +132,6 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'push' when: never -.rules-merge-request-to-float-ref: - rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "ivas-float-update" - - if: $CI_PIPELINE_SOURCE == 'push' - when: never - .rules-merge-request-to-main-no-draft: rules: - if: $CI_MERGE_REQUEST_TITLE =~ /^(\[Draft\]|\(Draft\)|Draft:)/ @@ -145,14 +140,6 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'push' when: never -.rules-merge-request-to-float-ref-no-draft: - rules: - - if: $CI_MERGE_REQUEST_TITLE =~ /^(\[Draft\]|\(Draft\)|Draft:)/ - when: never - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "ivas-float-update" - - if: $CI_PIPELINE_SOURCE == 'push' - when: never - .rules-pytest-to-ref-pre: rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "ivas-conformance-linux" @@ -228,11 +215,7 @@ workflow: # Job templates # --------------------------------------------------------------- -# override for centrally defined job to make use of the basop runners -.job-linux: - tags: - - ivas-linux - +# override for centrally defined job to add the before_script section # custom variant of this template, we need to update the scripts repo before every build .test-job-linux: extends: @@ -277,7 +260,6 @@ workflow: - set -euxo pipefail - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - if [ $USE_LTV -eq 1 ]; then - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/update-ltv-repo.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh @@ -419,7 +401,6 @@ workflow: - set -euxo pipefail - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - python3 tests/create_short_testvectors.py - if [ $USE_LTV -eq 1 ]; then @@ -545,8 +526,6 @@ workflow: - exit 0 - fi - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - - if [ $USE_LTV -eq 1 ]; then - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/update-ltv-repo.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh @@ -683,7 +662,6 @@ workflow: - !reference [ .job-linux, before_script ] - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh - set -euxo pipefail @@ -725,7 +703,6 @@ workflow: - !reference [ .job-linux, before_script ] - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - if [ $USE_LTV -eq 1 ]; then - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/update-ltv-repo.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh @@ -889,7 +866,6 @@ clang-format-check: needs: [] timeout: "10 minutes" script: - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh # Set up variables. This can't be done in the "variables" section because variables are not expanded properly there - PATCH_FILE_NAME="$ARTIFACT_BASE_NAME".patch - > @@ -1009,11 +985,7 @@ build-codec-linux-instrumented-make: script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - - if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" == "ivas-float-update" ] || [ "$CI_COMMIT_REF_NAME" == "ivas-float-update" ]; then - - bash scripts/prepare_instrumentation.sh - - else - - bash scripts/prepare_instrumentation.sh -m MEM_ONLY - - fi + - bash scripts/prepare_instrumentation.sh -m MEM_ONLY - make -j -C $INSTR_DIR # make sure that the codec builds with msan, asan and usan @@ -1247,7 +1219,6 @@ renderer-pytest-on-merge-request: REPORT_CSV: "report--$CI_JOB_NAME-$CI_JOB_ID--sha-$CI_COMMIT_SHORT_SHA.csv" script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-merge-target-binaries.sh - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/merge-request-comparison-setup-codec.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/merge-request-print-pinned-commits.sh @@ -1320,7 +1291,6 @@ ivas-pytest-on-merge-request: - ivas-linux script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-merge-target-binaries.sh - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/merge-request-comparison-setup-codec.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/merge-request-print-pinned-commits.sh @@ -1391,7 +1361,6 @@ split-rendering-pytest-on-merge-request: REPORT_CSV: "report--$CI_JOB_NAME-$CI_JOB_ID--sha-$CI_COMMIT_SHORT_SHA.csv" script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-merge-target-binaries.sh - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/merge-request-comparison-setup-codec.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/merge-request-print-pinned-commits.sh @@ -1451,52 +1420,28 @@ split-rendering-pytest-on-merge-request: - $REPORT_XML # test that runs all modes with 1s input signals -codec-smoke-test: +# TODO: activate once everything is fixed in BASOP +.codec-smoke-test-basop: extends: - - .test-job-linux-needs-testv-dir - - .rules-merge-request-to-float-ref-no-draft - timeout: "20 minutes" + - .smoke-test-template + - .rules-merge-request-to-main + timeout: "30 minutes" stage: test - needs: ["build-codec-linux-make"] + needs: + [ + "build-codec-linux-cmake", + "build-codec-linux-make", + ] script: - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - # LTV update needed as ltv ISM metadata files are used - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/update-ltv-repo.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - - bash ci/smoke_test.sh || true - - tar cJf logs.tar.xz out/logs/ - - ls -al logs.tar.* - ### analyze for failures - - if ! [ -s smoke_test_output.txt ] || ! [ -s smoke_test_output_jbm.txt ] || ! [ -s smoke_test_output_hrtf.txt ]; then echo "Error in smoke test"; exit 1; fi - - ret_val=0 - - if cat smoke_test_output.txt | grep -c "failed"; then echo "Smoke test without JBM failed"; ret_val=1; fi - - if cat smoke_test_output_jbm.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; ret_val=1; fi - - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then - - if [ "$DISABLE_HRTF" = "false" ]; then - - echo "Smoke test with external hrtf files failed" - - ret_val=1 - - else - - echo "Smoke test with external hrtf files failed, but DISABLE_HRTF is set. Ignoring failure." - - fi - - fi - - exit $ret_val - artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" - expire_in: 1 week - when: always - paths: - - smoke_test_output.txt - - smoke_test_output_jbm.txt - - smoke_test_output_hrtf.txt - - logs.tar.xz - expose_as: "Smoke test results" + - bash ci/smoke_test.sh # from float # check for crashes if first received frame on decoder side is an SID check-first-frame-is-sid: extends: - .test-job-linux-needs-testv-dir - - .rules-merge-request-to-float-ref-no-draft + - .rules-merge-request-to-main-no-draft stage: test needs: ["build-codec-linux-make"] script: @@ -1541,7 +1486,7 @@ check-first-frame-is-sid: ivas-interop-on-merge-request: extends: - .test-job-linux-needs-testv-dir - - .rules-merge-request-to-float-ref-no-draft + - .rules-merge-request-to-main-no-draft - .test-job-linux-compares-to-fixed-target stage: test timeout: "20 minutes" @@ -1596,7 +1541,6 @@ split-rendering-smoke-test: stage: test script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - make -j - testcase_timeout=10 @@ -1620,7 +1564,6 @@ lc3-wrapper-unit-test: stage: test script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j @@ -1631,10 +1574,11 @@ lc3-wrapper-unit-test: # from float # test renderer executable -renderer-smoke-test: +# TODO: adapt for BASOP +.renderer-smoke-test: extends: - .test-job-linux - - .rules-merge-request-to-float-ref-no-draft + - .rules-merge-request-to-main-no-draft needs: ["build-codec-linux-make"] stage: test script: @@ -1656,10 +1600,10 @@ renderer-smoke-test: # from float # test renderer executable with cmake + asan -renderer-asan: +# TODO: turn into scheduled job +.renderer-asan: extends: - .test-job-linux - - .rules-merge-request-to-float-ref-no-draft needs: ["build-codec-linux-cmake"] stage: test script: @@ -1683,10 +1627,10 @@ renderer-asan: # from float # test renderer executable with cmake + msan -renderer-msan: +# TODO: turn into scheduled job +.renderer-msan: extends: - .test-job-linux - - .rules-merge-request-to-float-ref-no-draft needs: ["build-codec-linux-cmake"] stage: test tags: @@ -1712,10 +1656,10 @@ renderer-msan: # from float # test renderer executable with cmake + usan -renderer-usan: +# TODO: turn into scheduled job +.renderer-usan: extends: - .test-job-linux - - .rules-merge-request-to-float-ref-no-draft needs: ["build-codec-linux-cmake"] stage: test tags: @@ -1772,7 +1716,6 @@ renderer-usan: # set CLANG_NUM, SELFTEST_SANITY_TIMEOUT and SELF_TEST_PRM_FILE in before_script section .sanitizer-selftest-anchor: &sanitizer-selftest-anchor - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh - testcase_timeout=$SELFTEST_SANITY_TIMEOUT - export UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1,print_stacktrace=1 @@ -2437,7 +2380,6 @@ voip-be-on-merge-request: - .test-job-linux-needs-testv-dir rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "voip-be-test" - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "ivas-float-update" # - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main stage: test needs: ["build-codec-linux-make"] diff --git a/main-float.yml b/main-float.yml index b21622bd39d57f38fbf0606f2f94b7d945f92b5d..824824d4730612c9d7a275db2d590f3055a13425 100644 --- a/main-float.yml +++ b/main-float.yml @@ -2,6 +2,7 @@ include: - local: main.yml - local: includes/default-variables-float.yml - local: includes/complexity-jobs.yml + - local: includes/smoke-test.yml - local: includes/build-jobs.yml stages: @@ -252,6 +253,7 @@ branch-is-up-to-date-with-main-post: when: never tags: - ivas-linux-fast + needs: [] before_script: - !reference [.job-linux, before_script] - python3 scripts/prepare_combined_format_inputs.py @@ -286,7 +288,6 @@ branch-is-up-to-date-with-main-post: junit: - report-junit.xml -### The stv jobs are run for both main and ivas-float-update basop-compat-stv: extends: - .basop-ci-branch-compat-template @@ -407,13 +408,11 @@ build-codec-windows-msbuild: # --------------------------------------------------------------- # test that runs all modes with 1s input signals -codec-smoke-test: +codec-smoke-test-float: extends: - - .test-job-linux-needs-testv-dir + - .smoke-test-template - .rules-merge-request-to-main timeout: "20 minutes" - tags: - - ivas-linux-fast stage: test needs: [ @@ -423,27 +422,27 @@ codec-smoke-test: "build-codec-sanitizers-linux", ] script: - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - # LTV update needed as ltv ISM metadata files are used - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/update-ltv-repo.sh + - bash ci/smoke_test.sh - # for MRs to basop-ci-branch-pc, we want to test with the BASOP float reference build - # per default, the smoke test builds the current repo again with WMOPS activated to catch unbalanced instrumentation macros - # TODO: make manual for basop-CI merges - - if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" = "basop-ci-branch" ]; then - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/float/build-binaries-from-basop-repo.sh ivas-float-update - - bash ci/smoke_test.sh coverage - - else - - bash ci/smoke_test.sh - - fi - - ### analyze for failures - - if ! [ -s smoke_test_output.txt ] || ! [ -s smoke_test_output_jbm.txt ] || ! [ -s smoke_test_output_hrtf.txt ]; then echo "Error in smoke test"; exit 1; fi - - ret_val=0 - - if cat smoke_test_output.txt | grep -c "failed"; then echo "Smoke test without JBM failed"; ret_val=1; fi - - if cat smoke_test_output_jbm.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; ret_val=1; fi - - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; ret_val=1; fi - - exit $ret_val +basop-compat-smoke-test: + extends: + - .smoke-test-template + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" + when: manual + - if: $CI_PIPELINE_SOURCE == 'push' + when: never + timeout: "20 minutes" + stage: basop-compat + needs: [] + allow_failure: true + script: + # get basop code and build binaries + - git clone -b main https://forge.3gpp.org/rep/sa4/audio/ivas-basop.git --single-branch --depth 1 + - cp -r scripts tests ci pytest.ini ivas-basop/ + - pushd ivas-basop + - bash ci/smoke_test.sh + - popd artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week @@ -452,6 +451,7 @@ codec-smoke-test: - smoke_test_output.txt - smoke_test_output_jbm.txt - smoke_test_output_hrtf.txt + - ivas-basop-commit-sha.txt expose_as: "Smoke test results" # code selftest testvectors with memory-sanitizer binaries @@ -831,7 +831,7 @@ ivas-pytest-on-merge-request: - .test-job-linux-needs-testv-dir - .rules-merge-request-to-main stage: compare - needs: ["build-codec-linux-cmake", "codec-smoke-test"] + needs: ["build-codec-linux-cmake", "codec-smoke-test-float"] timeout: "14 minutes" parallel: matrix: @@ -939,7 +939,7 @@ evs-pytest-on-merge-request: - .test-job-linux - .rules-merge-request-to-main stage: compare - needs: ["build-codec-linux-cmake", "codec-smoke-test"] + needs: ["build-codec-linux-cmake", "codec-smoke-test-float"] timeout: "10 minutes" script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh diff --git a/snippets/float/build-binaries-from-basop-repo.sh b/snippets/float/build-binaries-from-basop-repo.sh index 9cc0fd03efc42d7e92cad7e38cf8e0bdf82fdb73..f5eb0fe477b77cf34d1b8d1980682b64bdbb3c67 100644 --- a/snippets/float/build-binaries-from-basop-repo.sh +++ b/snippets/float/build-binaries-from-basop-repo.sh @@ -9,14 +9,20 @@ fi branchname=$1 clone_dir="ivas-basop" +commit_file="ivas-basop-commit-sha.txt" cd "${CI_PROJECT_DIR}" git clone -b $branchname https://forge.3gpp.org/rep/sa4/audio/ivas-basop.git --single-branch --depth 1 $clone_dir -make -C $clone_dir -j +pushd $clone_dir +git rev-parse HEAD >"$commit_file" +echo "Building BASOP codec @ $(git rev-parse HEAD)" +make -j +popd cp $clone_dir/IVAS_cod ./ cp $clone_dir/IVAS_dec ./ cp $clone_dir/IVAS_rend ./ cp $clone_dir/ISAR_post_rend ./ +cp $clone_dir/$commit_file ./