mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2025-06-26 20:51:09 +02:00
feat: add pylint check to ci pipeline
This commit is contained in:
@ -35,6 +35,39 @@ pylint:
|
|||||||
- ./pylint/
|
- ./pylint/
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
|
|
||||||
|
pylint-check:
|
||||||
|
stage: Formatter
|
||||||
|
needs: []
|
||||||
|
allow_failure: true
|
||||||
|
before_script:
|
||||||
|
- pip install pylint pylint-exit anybadge
|
||||||
|
- apt-get update
|
||||||
|
- apt-get install -y bc
|
||||||
|
script:
|
||||||
|
# Identify changed Python files
|
||||||
|
- if [ "$CI_PIPELINE_SOURCE" == "merge_request_event" ]; then
|
||||||
|
TARGET_BRANCH_COMMIT_SHA=$(git rev-parse $CI_MERGE_REQUEST_TARGET_BRANCH_NAME);
|
||||||
|
CHANGED_FILES=$(git diff --name-only $SOURCE_BRANCH_COMMIT_SHA $TARGET_BRANCH_COMMIT_SHA | grep '\.py$' || true);
|
||||||
|
else
|
||||||
|
CHANGED_FILES=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA | grep '\.py$' || true);
|
||||||
|
fi
|
||||||
|
- if [ -z "$CHANGED_FILES" ]; then echo "No Python files changed."; exit 0; fi
|
||||||
|
|
||||||
|
# Run pylint only on changed files
|
||||||
|
- mkdir ./pylint
|
||||||
|
- pylint $CHANGED_FILES --output-format=text . | tee ./pylint/pylint_changed_files.log || pylint-exit $?
|
||||||
|
- PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint_changed_files.log)
|
||||||
|
- echo "Pylint score is $PYLINT_SCORE"
|
||||||
|
|
||||||
|
# Fail the job if the pylint score is below 9
|
||||||
|
- if [ "$(echo "$PYLINT_SCORE < 9" | bc)" -eq 1 ]; then echo "Your pylint score is below the acceptable threshold (9)."; exit 1; fi
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- ./pylint/
|
||||||
|
expire_in: 1 week
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pytest:
|
pytest:
|
||||||
stage: Test
|
stage: Test
|
||||||
script:
|
script:
|
||||||
|
Reference in New Issue
Block a user