diff --git a/Jenkinsfile b/Jenkinsfile index 61f229a..32e64f8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -221,6 +221,9 @@ PY docker buildx build --platform "${TEST_PLATFORM_RESOLVED}" --target test --load -t atlasbot-test . prep_rc=$? docs_rc=1 + loc_rc=1 + tests_rc=1 + coverage_contract_rc=1 gate_rc=1 if [ "${prep_rc}" -eq 0 ]; then docker run --rm -v "$PWD/build:/out" atlasbot-test \ @@ -233,17 +236,24 @@ PY else docs_rc=${ruff_rc} fi + docker run --rm -v "$PWD/build:/out" atlasbot-test \ + python scripts/check_file_sizes.py --root atlasbot --max-lines 500 + loc_rc=$? + docker run --rm -v "$PWD/build:/out" atlasbot-test \ + python -m slipcover --json --out /out/coverage.json --source atlasbot --fail-under 95 \ + -m pytest -q --junitxml /out/junit.xml + tests_rc=$? + docker run --rm -v "$PWD/build:/out" atlasbot-test \ + python scripts/check_coverage.py /out/coverage.json --root atlasbot --threshold 95 + coverage_contract_rc=$? fi printf '%s\n' "${docs_rc}" > build/docs-naming.rc - if [ "${prep_rc}" -eq 0 ] && [ "${docs_rc}" -eq 0 ]; then - docker run --rm -v "$PWD/build:/out" atlasbot-test \ - python scripts/check_file_sizes.py --root atlasbot --max-lines 500 \ - && docker run --rm -v "$PWD/build:/out" atlasbot-test \ - python -m slipcover --json --out /out/coverage.json --source atlasbot --fail-under 95 \ - -m pytest -q --junitxml /out/junit.xml \ - && docker run --rm -v "$PWD/build:/out" atlasbot-test \ - python scripts/check_coverage.py /out/coverage.json --root atlasbot --threshold 95 - gate_rc=$? + if [ "${prep_rc}" -eq 0 ]; then + gate_rc=0 + [ "${docs_rc}" -eq 0 ] || gate_rc=1 + [ "${loc_rc}" -eq 0 ] || gate_rc=1 + [ "${tests_rc}" -eq 0 ] || gate_rc=1 + [ "${coverage_contract_rc}" -eq 0 ] || gate_rc=1 fi set -e printf '%s\n' "${gate_rc}" > build/quality-gate.rc