From 2842e8b1206b77e04f041e01b261fbf8065bea56 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Feb 2024 16:45:13 +0100 Subject: [PATCH 01/10] introduce yaml anchor for sanitizer tests and add ltv sanitizer jobs --- .gitlab-ci.yml | 160 +++++++++++++++++++++++++++---------------------- 1 file changed, 90 insertions(+), 70 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8665784309..c3a516a643 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -182,6 +182,20 @@ stages: - (Get-Content -Path "CMakeLists.txt") -replace '# \(add_compile_options\("\/WX"\)\)', '$1' | Set-Content -Path "CMakeLists.txt" - Get-ChildItem -Path "Workspace_msvc" -Filter "*.vcxproj" | ForEach-Object { (Get-Content -Path $_.FullName) -replace 'false', 'true' | Set-Content -Path $_.FullName } +# to be reused in MR and LTV-scheduled sanitizer test jobs +# set CLANG_NUM and SELF_TEST_PRM_FILE in before_script section +.sanitizer-selftest-anchor: &sanitizer-selftest-anchor + stage: test + needs: ["build-codec-sanitizers-linux"] + script: + - *print-common-info + - *copy-ltv-files-to-testv-dir + - make clean + - make -j CLANG=$CLANG_NUM + - testcase_timeout=180 + - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1 python3 -m pytest $SELF_TEST_PRM_FILE -v --update_ref 1 -m create_ref --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec + + # --------------------------------------------------------------- # Job templates # --------------------------------------------------------------- @@ -249,6 +263,38 @@ stages: - python3 scripts/prepare_combined_format_inputs.py - cp -r scripts/testv/* $TESTV_DIR/ +.sanitizer-selftest-on-mr: + extends: + - .test-job-linux-needs-testv-dir + - .rules-merge-request + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + expire_in: 1 week + when: always + paths: + - report-junit.xml + - report.html + expose_as: "$CI_JOB_NAME selftest results" + reports: + junit: + - report-junit.xml + +.sanitizer-selftest-ltv: + extends: + - .test-job-linux-needs-testv-dir + - .rules-main-scheduled + artifacts: + name: "$CI_JOB_NAME--sha-$CI_COMMIT_SHORT_SHA--results" + expire_in: 2 week + when: always + paths: + - report-junit.xml + - report.html + expose_as: "$CI_JOB_NAME selftest results" + reports: + junit: + - report-junit.xml + # --------------------------------------------------------------- # .pre jobs for setting up things # --------------------------------------------------------------- @@ -443,83 +489,29 @@ codec-smoke-test: # code selftest testvectors with memory-sanitizer binaries codec-msan: extends: - - .test-job-linux-needs-testv-dir - - .rules-merge-request - stage: test - needs: ["build-codec-sanitizers-linux"] - script: - - *print-common-info - - make clean - - make -j CLANG=1 - - testcase_timeout=180 - - exit_code=0 - - python3 -m pytest tests/codec_be_on_mr_nonselection/test_param_file.py -v --update_ref 1 -m create_ref --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec || exit_code=$? - - if [ $exit_code != 0 ] ; then echo "Run errors found by Clang memory-sanitizer"; exit 1; fi - artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" - expire_in: 1 week - when: always - paths: - - report-junit.xml - - report.html - expose_as: "msan selftest results" - reports: - junit: - - report-junit.xml + - .sanitizer-selftest-on-mr + before_script: + - CLANG_NUM=1 + - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" + <<: *sanitizer-selftest-anchor # code selftest testvectors with address-sanitizer binaries codec-asan: extends: - - .test-job-linux-needs-testv-dir - - .rules-merge-request - stage: test - needs: ["build-codec-sanitizers-linux"] - script: - - *print-common-info - - make clean - - make -j CLANG=2 - - testcase_timeout=180 - - exit_code=0 - - python3 -m pytest tests/codec_be_on_mr_nonselection/test_param_file.py -v --update_ref 1 -m create_ref --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec || exit_code=$? - - if [ $exit_code != 0 ] ; then echo "Run errors found by Clang address-sanitizer"; exit 1; fi - artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" - expire_in: 1 week - when: always - paths: - - report-junit.xml - - report.html - expose_as: "asan selftest results" - reports: - junit: - - report-junit.xml + - .sanitizer-selftest-on-mr + before_script: + - CLANG_NUM=2 + - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" + <<: *sanitizer-selftest-anchor -# code selftest testvectors with address-sanitizer binaries +# code selftest testvectors with undefined-behaviour-sanitizer binaries codec-usan: extends: - - .test-job-linux-needs-testv-dir - - .rules-merge-request - stage: test - needs: ["build-codec-sanitizers-linux"] - script: - - *print-common-info - - make clean - - make -j CLANG=3 - - testcase_timeout=180 - - exit_code=0 - - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1 python3 -m pytest tests/codec_be_on_mr_nonselection/test_param_file.py -v --update_ref 1 -m create_ref --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec || exit_code=$? - - if [ $exit_code != 0 ] ; then echo "Run errors found by Clang undefined-behavior-sanitizer"; exit 1; fi - artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" - expire_in: 1 week - when: always - paths: - - report-junit.xml - - report.html - expose_as: "usan selftest results" - reports: - junit: - - report-junit.xml + - .sanitizer-selftest-on-mr + before_script: + - CLANG_NUM=3 + - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" + <<: *sanitizer-selftest-anchor # test renderer executable renderer-smoke-test: @@ -1289,6 +1281,34 @@ test-long-self-test: # --------------------------------------------------------------- # Scheduled jobs on main # --------------------------------------------------------------- + +# code selftest long testvectors with memory-sanitizer binaries +ltv-msan: + extends: + - .sanitizer-selftest-ltv + before_script: + - CLANG_NUM=1 + - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" + <<: *sanitizer-selftest-anchor + +# code selftest long testvectors with address-sanitizer binaries +ltv-asan: + extends: + - .sanitizer-selftest-ltv + before_script: + - CLANG_NUM=2 + - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" + <<: *sanitizer-selftest-anchor + +# code selftest long testvectors with undefined-behaviour-sanitizer binaries +ltv-usan: + extends: + - .sanitizer-selftest-ltv + before_script: + - CLANG_NUM=3 + - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" + <<: *sanitizer-selftest-anchor + .sanitizer-test-template: extends: - .test-job-linux -- GitLab From 10ace10cf106f75188ea757abd6add2d53148470 Mon Sep 17 00:00:00 2001 From: kiene Date: Thu, 22 Feb 2024 15:59:40 +0000 Subject: [PATCH 02/10] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3a516a643..bef6ddbd94 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -274,7 +274,7 @@ stages: paths: - report-junit.xml - report.html - expose_as: "$CI_JOB_NAME selftest results" + expose_as: "Sanitizer selftest results" reports: junit: - report-junit.xml @@ -290,7 +290,7 @@ stages: paths: - report-junit.xml - report.html - expose_as: "$CI_JOB_NAME selftest results" + expose_as: "Sanitizer selftest results" reports: junit: - report-junit.xml -- GitLab From bb28e7079670989904ecfdcfb88b32e546d5b59c Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Feb 2024 17:11:28 +0100 Subject: [PATCH 03/10] prepare job for schedule --- .gitlab-ci.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bef6ddbd94..8014930756 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -282,7 +282,6 @@ stages: .sanitizer-selftest-ltv: extends: - .test-job-linux-needs-testv-dir - - .rules-main-scheduled artifacts: name: "$CI_JOB_NAME--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 2 week @@ -1286,6 +1285,8 @@ test-long-self-test: ltv-msan: extends: - .sanitizer-selftest-ltv + rules: + - if: $SANITIZER_SCHEDULE_E before_script: - CLANG_NUM=1 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" @@ -1295,6 +1296,10 @@ ltv-msan: ltv-asan: extends: - .sanitizer-selftest-ltv + rules: + - if: $SANITIZER_SCHEDULE_E + when: delayed + start_in: 1 hours before_script: - CLANG_NUM=2 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" @@ -1304,6 +1309,10 @@ ltv-asan: ltv-usan: extends: - .sanitizer-selftest-ltv + rules: + - if: $SANITIZER_SCHEDULE_E + when: delayed + start_in: 2 hours before_script: - CLANG_NUM=3 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" -- GitLab From 154be16eaa9b41e5281db6530162d89a629a6d38 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Feb 2024 17:26:13 +0100 Subject: [PATCH 04/10] add timeout --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8014930756..00a04b2166 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1287,6 +1287,7 @@ ltv-msan: - .sanitizer-selftest-ltv rules: - if: $SANITIZER_SCHEDULE_E + timeout: 1 hour before_script: - CLANG_NUM=1 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" @@ -1300,6 +1301,7 @@ ltv-asan: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 1 hours + timeout: 1 hour before_script: - CLANG_NUM=2 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" @@ -1313,6 +1315,7 @@ ltv-usan: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 2 hours + timeout: 1 hour before_script: - CLANG_NUM=3 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" -- GitLab From 823f83417c14323d64ecbce425ffde25deb6714b Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Feb 2024 17:26:34 +0100 Subject: [PATCH 05/10] temporarily allow scheduled piepline on all branches --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 00a04b2166..556cd9c442 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,7 +39,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main variables: IVAS_PIPELINE_NAME: 'Push pipeline: $CI_COMMIT_BRANCH' - - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main + - if: $CI_PIPELINE_SOURCE == 'schedule' variables: IVAS_PIPELINE_NAME: 'Scheduled pipeline: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'default' # for testing -- GitLab From 1aa191a7c5de7ae0d47e3770b304daab15b66406 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Feb 2024 17:40:47 +0100 Subject: [PATCH 06/10] add correct tag --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 556cd9c442..a83c70443a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1288,6 +1288,8 @@ ltv-msan: rules: - if: $SANITIZER_SCHEDULE_E timeout: 1 hour + tags: + - ivas-linux-fast before_script: - CLANG_NUM=1 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" @@ -1301,6 +1303,8 @@ ltv-asan: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 1 hours + tags: + - ivas-linux-fast timeout: 1 hour before_script: - CLANG_NUM=2 @@ -1315,6 +1319,8 @@ ltv-usan: - if: $SANITIZER_SCHEDULE_E when: delayed start_in: 2 hours + tags: + - ivas-linux-fast timeout: 1 hour before_script: - CLANG_NUM=3 -- GitLab From 57eb5cf011ba490ed645768c61cb1ffc04be608e Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Feb 2024 18:09:53 +0100 Subject: [PATCH 07/10] longer testcase timeout for ltv sanitizer test --- .gitlab-ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a83c70443a..4c7295102b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -183,7 +183,7 @@ stages: - Get-ChildItem -Path "Workspace_msvc" -Filter "*.vcxproj" | ForEach-Object { (Get-Content -Path $_.FullName) -replace 'false', 'true' | Set-Content -Path $_.FullName } # to be reused in MR and LTV-scheduled sanitizer test jobs -# set CLANG_NUM and SELF_TEST_PRM_FILE in before_script section +# set CLANG_NUM, SELFTEST_SANITY_TIMEOUT and SELF_TEST_PRM_FILE in before_script section .sanitizer-selftest-anchor: &sanitizer-selftest-anchor stage: test needs: ["build-codec-sanitizers-linux"] @@ -192,7 +192,7 @@ stages: - *copy-ltv-files-to-testv-dir - make clean - make -j CLANG=$CLANG_NUM - - testcase_timeout=180 + - testcase_timeout=$SELFTEST_SANITY_TIMEOUT - UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1 python3 -m pytest $SELF_TEST_PRM_FILE -v --update_ref 1 -m create_ref --html=report.html --self-contained-html --junit-xml=report-junit.xml --testcase_timeout=$testcase_timeout --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec @@ -491,6 +491,7 @@ codec-msan: - .sanitizer-selftest-on-mr before_script: - CLANG_NUM=1 + - SELFTEST_SANITY_TIMEOUT=180 - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" <<: *sanitizer-selftest-anchor @@ -500,6 +501,7 @@ codec-asan: - .sanitizer-selftest-on-mr before_script: - CLANG_NUM=2 + - SELFTEST_SANITY_TIMEOUT=180 - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" <<: *sanitizer-selftest-anchor @@ -509,6 +511,7 @@ codec-usan: - .sanitizer-selftest-on-mr before_script: - CLANG_NUM=3 + - SELFTEST_SANITY_TIMEOUT=180 - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" <<: *sanitizer-selftest-anchor @@ -1292,6 +1295,7 @@ ltv-msan: - ivas-linux-fast before_script: - CLANG_NUM=1 + - SELFTEST_SANITY_TIMEOUT=420 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" <<: *sanitizer-selftest-anchor @@ -1308,6 +1312,7 @@ ltv-asan: timeout: 1 hour before_script: - CLANG_NUM=2 + - SELFTEST_SANITY_TIMEOUT=420 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" <<: *sanitizer-selftest-anchor @@ -1324,6 +1329,7 @@ ltv-usan: timeout: 1 hour before_script: - CLANG_NUM=3 + - SELFTEST_SANITY_TIMEOUT=420 - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" <<: *sanitizer-selftest-anchor -- GitLab From f1d360dd646f67e166c406cba67d78456d49561d Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 23 Feb 2024 09:45:02 +0100 Subject: [PATCH 08/10] increase testcase timeout even further --- .gitlab-ci.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c7295102b..3e63ed7a88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,6 +21,8 @@ variables: - 'test-be-release' - 'test-long-self-test' GIT_CLEAN_FLAGS: -ffdxq + TESTCASE_TIMEOUT_STV_SANITIZERS: 180 + TESTCASE_TIMEOUT_LTV_SANITIZERS: 720 default: @@ -491,7 +493,7 @@ codec-msan: - .sanitizer-selftest-on-mr before_script: - CLANG_NUM=1 - - SELFTEST_SANITY_TIMEOUT=180 + - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_STV_SANITIZERS - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" <<: *sanitizer-selftest-anchor @@ -501,7 +503,7 @@ codec-asan: - .sanitizer-selftest-on-mr before_script: - CLANG_NUM=2 - - SELFTEST_SANITY_TIMEOUT=180 + - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_STV_SANITIZERS - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" <<: *sanitizer-selftest-anchor @@ -511,7 +513,7 @@ codec-usan: - .sanitizer-selftest-on-mr before_script: - CLANG_NUM=3 - - SELFTEST_SANITY_TIMEOUT=180 + - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_STV_SANITIZERS - SELF_TEST_PRM_FILE="tests/codec_be_on_mr_nonselection/test_param_file.py" <<: *sanitizer-selftest-anchor @@ -1295,7 +1297,7 @@ ltv-msan: - ivas-linux-fast before_script: - CLANG_NUM=1 - - SELFTEST_SANITY_TIMEOUT=420 + - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" <<: *sanitizer-selftest-anchor @@ -1312,7 +1314,7 @@ ltv-asan: timeout: 1 hour before_script: - CLANG_NUM=2 - - SELFTEST_SANITY_TIMEOUT=420 + - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" <<: *sanitizer-selftest-anchor @@ -1329,7 +1331,7 @@ ltv-usan: timeout: 1 hour before_script: - CLANG_NUM=3 - - SELFTEST_SANITY_TIMEOUT=420 + - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_LTV_SANITIZERS - SELF_TEST_PRM_FILE="tests/test_param_file_ltv.py" <<: *sanitizer-selftest-anchor -- GitLab From 03f3303843c98a168e1a06f02b572e6bcfa6392c Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 23 Feb 2024 15:19:41 +0100 Subject: [PATCH 09/10] increase timeout --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3e63ed7a88..2c296290eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ variables: - 'test-long-self-test' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 - TESTCASE_TIMEOUT_LTV_SANITIZERS: 720 + TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 default: -- GitLab From 0594f1e79cb3c8695537116aa33bad6557e85c71 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 23 Feb 2024 15:35:19 +0100 Subject: [PATCH 10/10] Revert "temporarily allow scheduled piepline on all branches" This reverts commit 823f83417c14323d64ecbce425ffde25deb6714b. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3da876ba66..9344bda913 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,7 +42,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main variables: IVAS_PIPELINE_NAME: 'Push pipeline: $CI_COMMIT_BRANCH' - - if: $CI_PIPELINE_SOURCE == 'schedule' + - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main variables: IVAS_PIPELINE_NAME: 'Scheduled pipeline: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'default' # for testing -- GitLab