Commit 11ff544f authored by norvell's avatar norvell Committed by Sandesh Venkatesh
Browse files

Trying to simplify jobs with anchor

parent 6d4c52ef
Loading
Loading
Loading
Loading
+39 −236
Original line number Diff line number Diff line
@@ -5,7 +5,10 @@ variables:
  SCRIPTS_DIR: "/usr/local/scripts"
  EXIT_CODE_NON_BE: 123
  EXIT_CODE_FAIL: 1
  TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/test_param_file_ltv.py tests/renderer"
  LARGE_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/test_param_file_ltv.py tests/renderer"
  SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection"
  USE_REF_ENC: "1"
  TEST_SUITE: ""
  LEVEL_SCALING: "1.0"
  IVAS_PIPELINE_NAME: ''
  MANUAL_PIPELINE_TYPE:
@@ -136,29 +139,8 @@ stages:
    - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi
    - cp -r scripts/testv/* $TESTV_DIR/

# ---------------------------------------------------------------
# Build jobs
# ---------------------------------------------------------------

# ensure that codec builds on linux
build-codec-linux-make:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web'
    - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main
    - if: $CI_PIPELINE_SOURCE == 'push'
      when: never
  extends:
    - .build-job-linux
  script:
    - *print-common-info
    - make -j

# ---------------------------------------------------------------
# Test jobs 
# ---------------------------------------------------------------

ivas-pytest-mld-enc-dec:
.ivas-pytest-mld-anchor: &ivas-pytest-mld-anchor
  extends:
    - .test-job-linux
    - .rules-pytest-mld
@@ -168,187 +150,23 @@ ivas-pytest-mld-enc-dec:
  script:
    - *print-common-info
    - *update-scripts-repo
    - if [ $USE_LTV -eq 1 ]; then
    -    *update-ltv-repo
    -    *copy-ltv-files-to-testv-dir
    - fi
    - *remove-unsupported-testcases
    - *mld-test-setup-codec

    ### run pytest
    - exit_code=0
    - python3 -m pytest $TEST_SUITE -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld -n auto || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true
    
    - python3 scripts/parse_mld.py report.html mld.csv

    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit $EXIT_CODE_NON_BE; fi
    - exit 0

  allow_failure:
    exit_codes:
      - 123
  artifacts:
    name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - mld.csv
    expose_as: "pytest mld results"
    reports:
      junit:
        - report-junit.xml


ivas-pytest-mld-dec:
  extends:
    - .test-job-linux
    - .rules-pytest-mld
  stage: test
  needs: ["build-codec-linux-make"]
  timeout: "30 minutes"
  script:
    - *print-common-info
    - *update-scripts-repo
    - *update-ltv-repo
    - *copy-ltv-files-to-testv-dir    
    - *remove-unsupported-testcases
    - *mld-test-setup-codec

    ### run pytest
    - exit_code=0
    - python3 -m pytest $TEST_SUITE -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path ./IVAS_cod_ref -n auto || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true

    - python3 scripts/parse_mld.py report.html mld.csv

    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit $EXIT_CODE_NON_BE; fi
    - exit 0

  allow_failure:
    exit_codes:
      - 123
  artifacts:
    name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - mld.csv
    expose_as: "pytest mld results"
    reports:
      junit:
        - report-junit.xml


ivas-pytest-mld-dec-lev-10:
  extends:
    - .test-job-linux
  stage: test
  needs: ["build-codec-linux-make"]
  timeout: "30 minutes"
  script:
    - *print-common-info
    - *update-scripts-repo
    - *update-ltv-repo
    - *copy-ltv-files-to-testv-dir    
    - *remove-unsupported-testcases
    - LEVEL_SCALING=0.3162 # -10 dB, 10^(-10/20)
    - if [ $LEVEL_SCALING != "1.0" ];then
    -   *apply-testv-scaling        
    - fi
    - *mld-test-setup-codec

    ### run pytest
    - exit_code=0
    - if [ $USE_REF_ENC -eq 1 ]; then
    -    python3 -m pytest $TEST_SUITE -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path ./IVAS_cod_ref -n auto || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true

    - python3 scripts/parse_mld.py report.html mld.csv

    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit $EXIT_CODE_NON_BE; fi
    - exit 0

  allow_failure:
    exit_codes:
      - 123
  artifacts:
    name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - mld.csv
    expose_as: "pytest mld results"
    reports:
      junit:
        - report-junit.xml

ivas-pytest-mld-dec-lev+10:
  extends:
    - .test-job-linux
  stage: test
  needs: ["build-codec-linux-make"]
  timeout: "30 minutes"
  script:
    - *print-common-info
    - *update-scripts-repo
    - *update-ltv-repo
    - *copy-ltv-files-to-testv-dir    
    - *remove-unsupported-testcases
    - LEVEL_SCALING=3.162 # +10 dB, 10^(10/20)
    - *apply-testv-scaling    
    - *mld-test-setup-codec

    ### run pytest
    - exit_code=0
    - python3 -m pytest $TEST_SUITE -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path ./IVAS_cod_ref -n auto || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true

    - python3 scripts/parse_mld.py report.html mld.csv

    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit $EXIT_CODE_NON_BE; fi
    - exit 0

  allow_failure:
    exit_codes:
      - 123
  artifacts:
    name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - mld.csv
    expose_as: "pytest mld results"
    reports:
      junit:
        - report-junit.xml
        
ivas-pytest-mld-enc-dec-lev-10:
  extends:
    - .test-job-linux
  stage: test
  needs: ["build-codec-linux-make"]
  timeout: "30 minutes"
  script:
    - *print-common-info
    - *update-scripts-repo
    - *update-ltv-repo
    - *copy-ltv-files-to-testv-dir    
    - *remove-unsupported-testcases
    - LEVEL_SCALING=0.3162 # -10 dB, 10^(-10/20)
    - *apply-testv-scaling    
    - *mld-test-setup-codec

    ### run pytest
    - exit_code=0
    - else
    -    python3 -m pytest $TEST_SUITE -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld -n auto || exit_code=$?
    - fi
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true
    
    - python3 scripts/parse_mld.py report.html mld.csv
@@ -373,46 +191,31 @@ ivas-pytest-mld-enc-dec-lev-10:
      junit:
        - report-junit.xml

ivas-pytest-mld-enc-dec-lev+10:
# ---------------------------------------------------------------
# Build jobs
# ---------------------------------------------------------------

# ensure that codec builds on linux
build-codec-linux-make:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web'
    - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main
    - if: $CI_PIPELINE_SOURCE == 'push'
      when: never
  extends:
    - .test-job-linux
  stage: test
  needs: ["build-codec-linux-make"]
  timeout: "30 minutes"
    - .build-job-linux
  script:
    - *print-common-info
    - *update-scripts-repo
    - *update-ltv-repo
    - *copy-ltv-files-to-testv-dir    
    - *remove-unsupported-testcases
    - LEVEL_SCALING=3.162 # +10 dB, 10^(10/20)
    - *apply-testv-scaling    
    - *mld-test-setup-codec

    ### run pytest
    - exit_code=0
    - python3 -m pytest $TEST_SUITE -v --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld -n auto || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true

    - python3 scripts/parse_mld.py report.html mld.csv

    - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code -eq 1 ]; then echo "Differences encountered"; exit $EXIT_CODE_NON_BE; fi
    - exit 0
    - make -j

  allow_failure:
    exit_codes:
      - 123
  artifacts:
    name: "mld--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    when: always
    paths:
      - report-junit.xml
      - report.html
      - mld.csv
    expose_as: "pytest mld results"
    reports:
      junit:
        - report-junit.xml
# ---------------------------------------------------------------
# Test jobs 
# ---------------------------------------------------------------

ivas-pytest-mld-enc-dec:
  before_script:
    - USE_REF_ENC=0
    - TEST_SUITE=$SHORT_TEST_SUITE
    - LEVEL_SCALING=1.0
  *ivas-pytest-mld-anchor  
 No newline at end of file