diff --git a/includes/complexity-jobs.yml b/includes/complexity-jobs.yml new file mode 100644 index 0000000000000000000000000000000000000000..b6e81753842be6333a07d692b22f88f1522a4fe2 --- /dev/null +++ b/includes/complexity-jobs.yml @@ -0,0 +1,457 @@ +# --------------------------------------------------------------- +# Complexity measurement jobs +# --------------------------------------------------------------- + +# create necessary environment +.complexity-measurements-setup: + &complexity-measurements-setup + ### 1. part: this is boilerplate code to make the gitlab pages presentation work + - mkdir -p wmops/logs + + - job_id=$(python3 ci/get_id_of_last_job_occurence.py $CI_COMMIT_REF_NAME $CI_JOB_NAME $CI_PROJECT_ID) + - echo $job_id + + # this is a testing/maintenance mechanism to force getting the log history from a specific job id + # see below in the concrete complexity jobs + - if [ "$JOB_ID_INJECT" != "" ]; then job_id=$JOB_ID_INJECT; fi + + - curl --silent --show-error --request GET "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip + - unzip -qq artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html + - public_dir="$CI_JOB_NAME-public" + + # if is needed to catch case when no artifact is there (first run), similarly as above + # 1. check for public_dir being there as this might not be the case when artifact download failed + # 2. check for public dir not being empty - handle job failures in prev job that happen after the dir is created. In that case, the empty dir is in the artifacts + - if [ -d $public_dir ] && [ ! -z "$( ls -A $public_dir )" ]; then + - mv $public_dir/* wmops/ + # check here if we have the split-by-levels files present - if not, fake them up with the existing global one + # this is needed for the first run with split graphs on a branch where the global version did run previously + # NOTE: checking only for level_1 file here as this should already be sufficient + # NOTE2: also not chechking for RAM for same reason + - wmops_all_global="wmops/log_wmops_all.txt" + - ram_all_global="wmops/log_ram_all.txt" + - if [ -f "${wmops_all_global}" ] && [ ! -f "wmops/log_wmops_all_level_1.txt" ]; then + - declare -a suffixes=("level_1" "level_2" "level_3" "rate_sw") + - for suffix in "${suffixes[@]}"; do + - cp ${wmops_all_global} wmops/log_wmops_all_${suffix}.txt + - cp ${ram_all_global} wmops/log_ram_all_${suffix}.txt + - done + - fi + - fi + + - rm artifacts.zip + - rm -rf $public_dir + + ### 1.5.part: get the corresponding measurement from ivas-codec main in BASOP + # only do this for ivas-basop + - if [ "$CI_PROJECT_ID" == "$PROJECT_ID_BASOP" ]; then + # find id of same name job in float repo on branch main + - job_id=$(python3 ci/get_id_of_last_job_occurence.py main $CI_JOB_NAME $PROJECT_ID_FLOAT) + - echo $job_id + - curl --silent --show-error --request GET "$CI_API_V4_URL/projects/$PROJECT_ID_FLOAT/jobs/$job_id/artifacts" --output artifacts_ref.zip + - unzip -qq -j artifacts_ref.zip "*latest_WMOPS.csv" || true + # add file to arguments only if the artifact could be retrieved to prevent error later. + - if [ -f latest_WMOPS.csv ]; then GET_WMOPS_ARGS="$GET_WMOPS_ARGS latest_WMOPS.csv"; fi + - fi + + # prepare artifacts -> move to public directory +.complexity-measurements-prepare-artifacts: + &complexity-measurements-prepare-artifacts + - public_dir="$CI_JOB_NAME-public" + - mkdir $public_dir + - mv -f wmops/log_*_all*.txt ./*.js ${public_dir}/ + # move logfiles for links + - mkdir $public_dir/logs + # first move logs + - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") + - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done + - if [ "$CI_PROJECT_ID" == "$PROJECT_ID_FLOAT" ]; then mv wmops/logs/latest_WMOPS.csv $public_dir/logs/; fi + # copy index page blueprint + - cp ci/complexity_measurements/index_complexity.html ${public_dir}/index.html + # patch the format in the title + - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html + # do separately here to avoid overwrite complaints by mv + - mv -f ci/complexity_measurements/style.css ${public_dir}/ + +.complexity-measurements-report-summary: &complexity-measurements-report-summary + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/print-results-banner.sh + - if [ $ret_val -eq 0 ]; then + - echo -e "No crashes occured.\nNo changes in complexity or memory usage (>1%) detected." + - elif [ $ret_val -eq 123 ]; then + - echo -e "Changes in complexity or memory usage (>1%) detected!!!\nNo crashes occured." + - else + - echo -e "Something went wrong in running the codec. Likely some modes were crashing." + - fi + +.complexity-template: + extends: + - .test-job-linux + tags: + # TODO: align runner tags between projects + - ivas-linux-fast + timeout: 3 hours 30 minutes + stage: test + variables: + ret_val: 0 + GET_WMOPS_ARGS: "" + before_script: + - !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/update-ltv-repo.sh + - | + if [ "$CI_PROJECT_ID" == "$PROJECT_ID_BASOP" ]; then + bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh + GET_WMOPS_ARGS="mem_only" + fi + + # delete previous jobs logfiles if present (-f flag ensures return calue of 0 even in first run where this folder is not present) + - rm -rf COMPLEXITY/logs + + - set -euxo pipefail + - *complexity-measurements-setup + allow_failure: + exit_codes: + - 123 + artifacts: + name: "$CI_JOB_NAME--$CI_COMMIT_REF_NAME--sha-$CI_COMMIT_SHA" + when: always + expire_in: 2 week + paths: + - $CI_JOB_NAME-public + - COMPLEXITY/logs + +complexity-stereo-in-ext-out: + extends: + - .complexity-template + rules: + - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX + variables: + JOB_ID_INJECT: "" + script: + - in_format=stereo + - out_format=ext + - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? + - *complexity-measurements-prepare-artifacts + - *complexity-measurements-report-summary + - exit $ret_val + +# complexity-ism-in-binaural-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 1 hour +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=ISM +# - out_format=BINAURAL +# - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-ism-in-binaural_room_ir-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 2 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=ISM +# - out_format=BINAURAL_ROOM_IR +# - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-ism-in-ext-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 3 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=ISM +# - out_format=EXT +# - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-sba-hoa3-in-ext-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 4 hours 30 minutes +# script: +# - in_format=HOA3 +# - out_format=EXT +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-sba-hoa3-in-binaural-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 5 hours 30 minutes +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=HOA3 +# - out_format=BINAURAL +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-sba-hoa3-in-binaural_room_ir-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 6 hours 30 minutes +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=HOA3 +# - out_format=BINAURAL_ROOM_IR +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-mc-in-ext-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 7 hours 30 minutes +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=MC +# - out_format=EXT +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-mc-in-binaural-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 10 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=MC +# - out_format=BINAURAL +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-mc-in-binaural_room_ir-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 12 hours 30 minutes +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=MC +# - out_format=BINAURAL_ROOM_IR +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-masa-in-ext-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 15 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=MASA +# - out_format=EXT +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-masa-in-binaural-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 16 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=MASA +# - out_format=BINAURAL +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-masa-in-hoa3-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 17 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=MASA +# - out_format=HOA3 +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-omasa-in-ext-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 18 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=OMASA +# - out_format=EXT +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-omasa-in-binaural-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 20 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=OMASA +# - out_format=BINAURAL +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-omasa-in-hoa3-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 22 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=OMASA +# - out_format=HOA3 +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-StereoDmxEVS-stereo-in-mono-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 24 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=StereoDmxEVS +# - out_format=mono +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-osba-in-ext-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 25 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=OSBA +# - out_format=EXT +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-osba-in-binaural-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 28 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=OSBA +# - out_format=BINAURAL +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val +# +# complexity-osba-in-binaural_room_ir-out: +# extends: +# - .complexity-template +# rules: +# - if: $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX +# when: delayed +# start_in: 31 hours +# variables: +# JOB_ID_INJECT: "" +# script: +# - in_format=OSBA +# - out_format=BINAURAL_ROOM_IR +# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? +# - *complexity-measurements-prepare-artifacts +# - *complexity-measurements-report-summary +# - exit $ret_val diff --git a/includes/default-variables-basop.yml b/includes/default-variables-basop.yml index 235c96c9a372373a00fc8b8cba83a88cdecf5a66..e9aee3e75f3a25d2ce2c91bfea372ce7aa555a8e 100644 --- a/includes/default-variables-basop.yml +++ b/includes/default-variables-basop.yml @@ -1,7 +1,6 @@ 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: "ivas-float-update" 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" diff --git a/includes/default-variables-float.yml b/includes/default-variables-float.yml index 296f068f69a5019991d4e359ac138a46fb357b6a..9baec3b3458dec5a232da1d01a0282392fecbf36 100644 --- a/includes/default-variables-float.yml +++ b/includes/default-variables-float.yml @@ -19,6 +19,7 @@ variables: - 'check-clipping' - 'test-branch-vs-input-passthrough' - 'coverage' + - 'complexity' PYTEST_ARGS: "" LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/renderer --param_file scripts/config/self_test_ltv.prm --use_ltv" diff --git a/includes/default-variables.yml b/includes/default-variables.yml index 2dd4e3a610c71b9dcb3795e296a17d178d15cd9d..d72bce41107a4e6ce82a6a59ad58c59b73804ede 100644 --- a/includes/default-variables.yml +++ b/includes/default-variables.yml @@ -15,3 +15,5 @@ variables: BASOP_CI_SCRIPTS_BRANCH: "main" # overwrite this via .gitlab-ci.yml in the respective other repo to disable "(model from file)" testcases DISABLE_HRTF: "false" + PROJECT_ID_FLOAT: "49" + PROJECT_ID_BASOP: "77" diff --git a/includes/rules.yml b/includes/rules.yml index 0a588999475e9494ec0bf56b81930a205a9f071f..6e652788ad7521fc17519cf548d9742164e60260 100644 --- a/includes/rules.yml +++ b/includes/rules.yml @@ -19,6 +19,9 @@ when: never - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'complexity' + variables: + IVAS_PIPELINE_NAME: 'Complexity Measurement on $CI_COMMIT_BRANCH' - when: on_success .rules-merge-request-to-main: diff --git a/main-basop.yml b/main-basop.yml index 7b274d70af213a3d1f518bf67ba3f72b5425d966..1c327dc591b48d1bbb83485615c7e82179800a2b 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -2,6 +2,7 @@ include: - local: main.yml - local: includes/default-variables-basop.yml - local: includes/rules-basop.yml + - local: includes/complexity-jobs.yml stages: - .pre @@ -953,7 +954,7 @@ pytest-to-ref-pre: # ensure that codec builds on linux build-codec-linux-make: rules: - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES || $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH @@ -996,7 +997,7 @@ build-codec-linux-instrumented-make: when: never - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES when: never - - if: $MEASURE_COMPLEXITY_LINUX + - if: $MEASURE_COMPLEXITY_LINUX || $MANUAL_PIPELINE_TYPE == 'complexity' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'push' @@ -1058,7 +1059,7 @@ build-codec-linux-debugging-make: build-codec-windows-msbuild: rules: - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $UPDATE_PAGES || $MANUAL_PIPELINE_TYPE == 'complexity' || $MEASURE_COMPLEXITY_LINUX when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH @@ -1644,13 +1645,9 @@ lc3-wrapper-unit-test: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - echo "Assuming here that you either merge to main or to $FLOAT_REF_BRANCH." + - echo "Assuming here that you merge to main." - echo "If you have some other merge target, this might fail and manual fiddling is needed." - - if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" == "$FLOAT_REF_BRANCH" ]; then - - scripts/split_rendering/lc3plus_float/ivas_lc3plus_unit_test - - else - - scripts/split_rendering/lc3plus_basop/ivas_lc3plus_unit_test - - fi + - scripts/split_rendering/lc3plus_basop/ivas_lc3plus_unit_test # from float # test renderer executable @@ -2704,470 +2701,6 @@ backup-long-term-job-logs: - exit 1 - fi - -# --------------------------------------------------------------- -# Complexity measurement jobs -# --------------------------------------------------------------- - -# create necessary environment -.complexity-measurements-setup: &complexity-measurements-setup - ### 1. part: mainly same as in float repo - this is boilerplate code to make the gitlab pages presentation work - - mkdir -p wmops/logs - - - job_id=$(python3 ci/get_id_of_last_job_occurence.py $CI_COMMIT_REF_NAME $CI_JOB_NAME $CI_PROJECT_ID) - - echo $job_id - # this is a testing/maintenance mechanism to force getting the log history from a specific job id - # see below in the concrete complexity jobs - - if [ "$JOB_ID_INJECT" != "" ]; then job_id=$JOB_ID_INJECT; fi - - curl --silent --show-error --request GET "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip - - unzip -qq artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html - - public_dir="$CI_JOB_NAME-public" - - # if is needed to catch case when no artifact is there (first run), similarly as above - # 1. check for public_dir being there as this might not be the case when artifact download failed - # 2. check for public dir not being empty - handle job failures in prev job that happen after the dir is created. In that case, the empty dir is in the artifacts - - if [ -d $public_dir ] && [ ! -z "$( ls -A $public_dir )" ]; then - - mv $public_dir/* wmops/ - # check here if we have the split-by-levels files present - if not, fake them up with the existing global one - # this is needed for the first run with split graphs on a branch where the global version did run previously - # NOTE: checking only for level_1 file here as this should already be sufficient - # NOTE2: also not chechking for RAM for same reason - - wmops_all_global="wmops/log_wmops_all.txt" - - ram_all_global="wmops/log_ram_all.txt" - - if [ -f "${wmops_all_global}" ] && [ ! -f "wmops/log_wmops_all_level_1.txt" ]; then - - declare -a suffixes=("level_1" "level_2" "level_3" "rate_sw") - - for suffix in "${suffixes[@]}"; do - - cp ${wmops_all_global} wmops/log_wmops_all_${suffix}.txt - - cp ${ram_all_global} wmops/log_ram_all_${suffix}.txt - - done - - fi - - fi - - - rm artifacts.zip - - rm -rf $public_dir - - ### 1.5.part: get the corresponding measurement from ivas-float-update - # only do this on main and not for the complexity meaurements run on ivas-float-update - - if [ "$CI_COMMIT_REF_NAME" == "main" ]; then - - job_id=$(python3 ci/get_id_of_last_job_occurence.py $FLOAT_REF_BRANCH $CI_JOB_NAME $CI_PROJECT_ID) - - echo $job_id - - curl --silent --show-error --request GET "$CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts_ref.zip - - unzip -qq -j artifacts_ref.zip "*latest_WMOPS.csv" || true - # add file to arguments only if the artifact could be retrieved to prevent error later. - - if [ -f latest_WMOPS.csv ]; then GET_WMOPS_ARGS="$GET_WMOPS_ARGS latest_WMOPS.csv"; fi - - fi - -# prepare artifacts -> move to public directory -.complexity-measurements-prepare-artifacts: &complexity-measurements-prepare-artifacts - - public_dir="$CI_JOB_NAME-public" - - mkdir $public_dir - - mv -f wmops/log_*_all*.txt ./*.js ${public_dir}/ - # move logfiles for links - - mkdir $public_dir/logs - # first move logs - - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") - - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done - - if [ "$CI_COMMIT_REF_NAME" == "$FLOAT_REF_BRANCH" ]; then mv wmops/logs/latest_WMOPS.csv $public_dir/logs/; fi - # copy index page blueprint - - cp ci/complexity_measurements/index_complexity.html ${public_dir}/index.html - # patch the format in the title - - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html - # do separately here to avoid overwrite complaints by mv - - mv -f ci/complexity_measurements/style.css ${public_dir}/ - -.complexity-measurements-report-summary: &complexity-measurements-report-summary - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/print-results-banner.sh - - if [ $ret_val -eq 0 ]; then - - echo -e "No crashes occured.\nNo changes in complexity or memory usage (>1%) detected." - - elif [ $ret_val -eq 123 ]; then - - echo -e "Changes in complexity or memory usage (>1%) detected!!!\nNo crashes occured." - - else - - echo -e "Something went wrong in running the codec. Likely some modes were crashing." - - fi - -.complexity-template: - extends: - - .test-job-linux - stage: test - variables: - ret_val: 0 - GET_WMOPS_ARGS: "mem_only" - timeout: 3 hours 30 minutes - before_script: - - !reference [ .test-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/update-ltv-repo.sh - - *complexity-measurements-setup - # delete previous jobs logfiles if present (-f flag ensures return calue of 0 even in first run where this folder is not present) - - rm -rf COMPLEXITY/logs - - if [ "$CI_COMMIT_REF_NAME" == "ivas-float-update" ]; then GET_WMOPS_ARGS=""; fi - allow_failure: - exit_codes: - - 123 - artifacts: - name: "$CI_JOB_NAME--$CI_COMMIT_REF_NAME--sha-$CI_COMMIT_SHA" - when: always - expire_in: 2 week - paths: - - $CI_JOB_NAME-public - - COMPLEXITY/logs - -complexity-stereo-in-stereo-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - variables: - JOB_ID_INJECT: "" - script: - - in_format=stereo - - out_format=stereo - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-ism-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 1 hour - variables: - JOB_ID_INJECT: "" - script: - - in_format=ISM - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-ism-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 2 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=ISM - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-ism-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 3 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=ISM - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-sba-hoa3-in-hoa3-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 4 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=HOA3 - - out_format=HOA3 - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-sba-hoa3-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 5 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=HOA3 - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-sba-hoa3-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 6 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=HOA3 - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-mc-in-7_1_4-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 7 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=MC - - out_format=7_1_4 - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-mc-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 10 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=MC - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-mc-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 12 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=MC - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-masa-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 15 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=MASA - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-masa-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 16 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=MASA - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-masa-in-hoa3-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 17 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=MASA - - out_format=HOA3 - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -# complexity-omasa-in-ext-out: -# extends: -# - .complexity-template -# rules: -# - if: $MEASURE_COMPLEXITY_LINUX -# when: delayed -# start_in: 13 hours - # variables: - # JOB_ID_INJECT: "" -# script: -# - in_format=OMASA -# - out_format=EXT -# - ret_val=0 -# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? -# - *complexity-measurements-prepare-artifacts -# - *complexity-measurements-report-summary -# - exit $ret_val - -complexity-omasa-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 18 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=OMASA - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-omasa-in-hoa3-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 20 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=OMASA - - out_format=HOA3 - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-StereoDmxEVS-stereo-in-mono-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 22 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=StereoDmxEVS - - out_format=mono - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -# complexity-osba-in-ext-out: -# extends: -# - .complexity-template -# rules: -# - if: $MEASURE_COMPLEXITY_LINUX -# when: delayed -# start_in: 17 hours -# script: -# - in_format=OSBA -# - out_format=EXT -# - ret_val=0 -# - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? -# - *complexity-measurements-prepare-artifacts -# - *complexity-measurements-report-summary -# - exit $ret_val - -complexity-osba-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 22 hours 30 minutes - variables: - JOB_ID_INJECT: "" - script: - - in_format=OSBA - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - -complexity-osba-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 25 hours - variables: - JOB_ID_INJECT: "" - script: - - in_format=OSBA - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - - *complexity-measurements-prepare-artifacts - - *complexity-measurements-report-summary - - exit $ret_val - ivas-conformance-linux: extends: - .job-linux diff --git a/main-float.yml b/main-float.yml index f17b861ae0bc8e792ae6ea1b3d21801db73172d4..e06cab0c6f5b344f81b22c89b727efc39dbf8ceb 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 stages: - .pre @@ -56,6 +57,9 @@ workflow: - if: $MANUAL_PIPELINE_TYPE == 'coverage' variables: IVAS_PIPELINE_NAME: "Coverage measurement" + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'complexity' + variables: + IVAS_PIPELINE_NAME: 'Complexity Measurement on $CI_COMMIT_BRANCH' # --------------------------------------------------------------- # Generic script anchors @@ -2348,381 +2352,6 @@ coverage-test-on-main-scheduled-ltv: - $COVERAGE_OUTPUT_FILE - $COVERAGE_OUTPUT_DIR -# --------------------------------------------------------------- -# Complexity measurement jobs -# --------------------------------------------------------------- - -.complexity-measurements-setup: - &complexity-measurements-setup # create necessary environment - - mkdir -p wmops/logs - - - job_id=$(python3 ci/get_id_of_last_job_occurence.py $CI_COMMIT_REF_NAME $CI_JOB_NAME $CI_PROJECT_ID) - - echo $job_id - - curl --silent --show-error --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip - - unzip -qq artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html - - public_dir="$CI_JOB_NAME-public" - - # if is needed to catch case when no artifact is there (first run), similarly as above - # 1. check for public_dir being there as this might not be the case when artifact download failed - # 2. check for public dir not being empty - handle job failures in prev job that happen after the dir is created. In that case, the empty dir is in the artifacts - - if [ -d $public_dir ] && [ ! -z "$( ls -A $public_dir )" ]; then - - mv $public_dir/* wmops/ - # check here if we have the split-by-levels files present - if not, fake them up with the existing global one - # this is needed for the first run with split graphs on a branch where the global version did run previously - # NOTE: checking only for level_1 file here as this should already be sufficient - # NOTE2: also not chechking for RAM for same reason - - wmops_all_global="wmops/log_wmops_all.txt" - - ram_all_global="wmops/log_ram_all.txt" - - if [ -f "${wmops_all_global}" ] && [ ! -f "wmops/log_wmops_all_level_1.txt" ]; then - - declare -a suffixes=("level_1" "level_2" "level_3" "rate_sw") - - for suffix in "${suffixes[@]}"; do - - cp ${wmops_all_global} wmops/log_wmops_all_${suffix}.txt - - cp ${ram_all_global} wmops/log_ram_all_${suffix}.txt - - done - - fi - - fi - - - rm artifacts.zip - - rm -rf $public_dir - -.complexity-measurements-prepare-artifacts: - &complexity-measurements-prepare-artifacts # prepare artifacts -> move to public directory - - public_dir="$CI_JOB_NAME-public" - - mkdir $public_dir - - mv -f wmops/log_*_all*.txt ./*.js ${public_dir}/ - # move logfiles for links - - mkdir $public_dir/logs - # first move logs - - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") - - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done - # copy index page blueprint - - cp ci/complexity_measurements/index_complexity.html ${public_dir}/index.html - # patch the format in the title - - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html - # do separately here to avoid overwrite complaints by mv - - mv -f ci/complexity_measurements/style.css ${public_dir}/ - -.complexity-template: - extends: - # still needed as long as no long MASA testvectors are there - - .test-job-linux-needs-testv-dir - tags: - - ivas-linux-fast - timeout: 3 hours 30 minutes - stage: test - before_script: - - !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/update-ltv-repo.sh - - *complexity-measurements-setup - allow_failure: - exit_codes: - - 123 - artifacts: - name: "$CI_JOB_NAME--$CI_COMMIT_REF_NAME--sha-$CI_COMMIT_SHA" - when: always - expire_in: 1 week - paths: - - $CI_JOB_NAME-public - -complexity-stereo-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - script: - - in_format=stereo - - out_format=ext - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-ism-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 1 hour - script: - - in_format=ISM - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-ism-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 2 hours - script: - - in_format=ISM - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-ism-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 3 hours - script: - - in_format=ISM - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-sba-hoa3-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 4 hours - script: - - in_format=HOA3 - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-sba-hoa3-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 5 hours - script: - - in_format=HOA3 - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-sba-hoa3-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 6 hours - script: - - in_format=HOA3 - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-mc-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 7 hours - script: - - in_format=MC - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-mc-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 8 hours - script: - - in_format=MC - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-mc-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 9 hours - script: - - in_format=MC - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-masa-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 10 hours - script: - - in_format=MASA - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-masa-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 11 hours - script: - - in_format=MASA - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-masa-in-hoa3-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 12 hours - script: - - in_format=MASA - - out_format=HOA3 - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-omasa-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 13 hours - script: - - in_format=OMASA - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-omasa-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 14 hours - script: - - in_format=OMASA - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-omasa-in-hoa3-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 15 hours - script: - - in_format=OMASA - - out_format=HOA3 - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-StereoDmxEVS-stereo-in-mono-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 16 hours - script: - - in_format=StereoDmxEVS - - out_format=mono - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-osba-in-ext-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 17 hours - script: - - in_format=OSBA - - out_format=EXT - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-osba-in-binaural-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 18 hours - script: - - in_format=OSBA - - out_format=BINAURAL - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - -complexity-osba-in-binaural_room_ir-out: - extends: - - .complexity-template - rules: - - if: $MEASURE_COMPLEXITY_LINUX - when: delayed - start_in: 19 hours - script: - - in_format=OSBA - - out_format=BINAURAL_ROOM_IR - - ret_val=0 - - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" || ret_val=$? - - *complexity-measurements-prepare-artifacts - - exit $ret_val - # --------------------------------------------------------------- # Other jobs # ---------------------------------------------------------------