From db5b9ab66a12740ff11a6e25466a7b896f968326 Mon Sep 17 00:00:00 2001 From: jparisu Date: Tue, 15 Nov 2022 15:47:12 +0100 Subject: [PATCH 1/3] Add python linter to CI check Signed-off-by: jparisu --- .../install-python-packages/action.yml | 4 +- .github/workflows/test.yml | 42 +++++++++++++++++++ linter_test.tmp.py | 15 +++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 linter_test.tmp.py diff --git a/.github/actions/install-python-packages/action.yml b/.github/actions/install-python-packages/action.yml index 9bc4281e..5e30ff09 100644 --- a/.github/actions/install-python-packages/action.yml +++ b/.github/actions/install-python-packages/action.yml @@ -19,5 +19,7 @@ runs: setuptools \ gcovr==5.0 \ pyyaml \ - jsonschema + jsonschema \ + flake8 \ + flake8-quotes shell: bash diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5425b9c6..abd4bfed 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -637,3 +637,45 @@ jobs: with: name: uncrustify_results path: uncrustify_results.xml + +########################################################### +# PYTHON LINTER + python-linter: + runs-on: ubuntu-latest + steps: + - name: Sync eProsima/dev-utils repository + uses: actions/checkout@v2 + with: + path: src/dev-utils + + - name: Fetch all branches and tags + run: | + cd src/dev-utils + git fetch --prune --unshallow + + - name: Install apt packages + uses: ./src/dev-utils/.github/actions/install-apt-packages + + - name: Install Python packages + uses: ./src/dev-utils/.github/actions/install-python-packages + + - name: Get difference + run: | + cd src/dev-utils + echo "MODIFIED_FILES=$(git diff --name-only origin/${GITHUB_BASE_REF} origin/${GITHUB_HEAD_REF} | grep -e '\.py' | tr '\n' ' ')" >> $GITHUB_ENV + + - name: Check difference + run: | + cd src/dev-utils + if [[ -z "${MODIFIED_FILES}" ]] + then + touch empty.py + echo "MODIFIED_FILES=empty.py" >> $GITHUB_ENV + fi + echo ${MODIFIED_FILES} + + - name: Check flake8 linter + run: | + cd src/dev-utils + python3 -m flake8 --config ./.github/workflows/setup.cfg ${MODIFIED_FILES} + if: always() diff --git a/linter_test.tmp.py b/linter_test.tmp.py new file mode 100644 index 00000000..605d3e66 --- /dev/null +++ b/linter_test.tmp.py @@ -0,0 +1,15 @@ +# No docstring + +# unused import +import os + +def function_without_docstring(): + pass + +def function_too_close(): + pass + + +unused_variable = 'this is so bad' +too_long_line = 'wololooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' +double_quotes = "ouch" From ee7f99aec6b504e193d3c374ff1ea5f04e85222d Mon Sep 17 00:00:00 2001 From: jparisu Date: Wed, 16 Nov 2022 12:03:36 +0100 Subject: [PATCH 2/3] refactor configurations in workflows Signed-off-by: jparisu --- .github/workflows/build_dependencies.yml | 2 +- .../{ => configurations}/asan_colcon.meta | 0 .../workflows/{ => configurations}/ci.repos | 0 .../{ => configurations}/clang_colcon.meta | 0 .../{ => configurations}/coverage_colcon.meta | 0 .github/workflows/configurations/setup.cfg | 6 ++++++ .../{ => configurations}/tsan_colcon.meta | 0 .github/workflows/test.yml | 18 +++++++++--------- 8 files changed, 16 insertions(+), 10 deletions(-) rename .github/workflows/{ => configurations}/asan_colcon.meta (100%) rename .github/workflows/{ => configurations}/ci.repos (100%) rename .github/workflows/{ => configurations}/clang_colcon.meta (100%) rename .github/workflows/{ => configurations}/coverage_colcon.meta (100%) create mode 100644 .github/workflows/configurations/setup.cfg rename .github/workflows/{ => configurations}/tsan_colcon.meta (100%) diff --git a/.github/workflows/build_dependencies.yml b/.github/workflows/build_dependencies.yml index 2cac3ad3..a72b4589 100644 --- a/.github/workflows/build_dependencies.yml +++ b/.github/workflows/build_dependencies.yml @@ -76,7 +76,7 @@ jobs: - name: Fetch repositories run: | - vcs import src < src/dev-utils/.github/workflows/ci.repos + vcs import src < src/dev-utils/.github/workflows/configurations/ci.repos cd src/fastdds && git checkout ${{ inputs.fastdds_branch }} && cd ../.. - name: Build workspace diff --git a/.github/workflows/asan_colcon.meta b/.github/workflows/configurations/asan_colcon.meta similarity index 100% rename from .github/workflows/asan_colcon.meta rename to .github/workflows/configurations/asan_colcon.meta diff --git a/.github/workflows/ci.repos b/.github/workflows/configurations/ci.repos similarity index 100% rename from .github/workflows/ci.repos rename to .github/workflows/configurations/ci.repos diff --git a/.github/workflows/clang_colcon.meta b/.github/workflows/configurations/clang_colcon.meta similarity index 100% rename from .github/workflows/clang_colcon.meta rename to .github/workflows/configurations/clang_colcon.meta diff --git a/.github/workflows/coverage_colcon.meta b/.github/workflows/configurations/coverage_colcon.meta similarity index 100% rename from .github/workflows/coverage_colcon.meta rename to .github/workflows/configurations/coverage_colcon.meta diff --git a/.github/workflows/configurations/setup.cfg b/.github/workflows/configurations/setup.cfg new file mode 100644 index 00000000..38a8772f --- /dev/null +++ b/.github/workflows/configurations/setup.cfg @@ -0,0 +1,6 @@ +[flake8] +max-line-length = 99 +max-doc-length = 300 +statistics = True +max-complexity = 10 +count = True diff --git a/.github/workflows/tsan_colcon.meta b/.github/workflows/configurations/tsan_colcon.meta similarity index 100% rename from .github/workflows/tsan_colcon.meta rename to .github/workflows/configurations/tsan_colcon.meta diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index abd4bfed..8d647206 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -105,11 +105,11 @@ jobs: - name: Build workspace run: | - cat src/dev-utils/.github/workflows/coverage_colcon.meta + cat src/dev-utils/.github/workflows/configurations/coverage_colcon.meta source /home/runner/work/fastdds/install/setup.bash colcon build \ --event-handlers=console_direct+ \ - --metas src/dev-utils/.github/workflows/coverage_colcon.meta \ + --metas src/dev-utils/.github/workflows/configurations/coverage_colcon.meta \ --mixin coverage-gcc asan-gcc - name: Run tests @@ -203,7 +203,7 @@ jobs: source /home/runner/work/fastdds/install/setup.bash colcon build \ --event-handlers=console_direct+ \ - --metas src/dev-utils/.github/workflows/asan_colcon.meta + --metas src/dev-utils/.github/workflows/configurations/asan_colcon.meta - name: Run tests run: | @@ -270,7 +270,7 @@ jobs: source /home/runner/work/fastdds/install/setup.bash colcon build \ --event-handlers=console_direct+ \ - --metas src/dev-utils/.github/workflows/tsan_colcon.meta + --metas src/dev-utils/.github/workflows/configurations/tsan_colcon.meta - name: Run tests run: | @@ -490,11 +490,11 @@ jobs: - name: Build workspace run: | - cat src/dev-utils/.github/workflows/coverage_colcon.meta + cat src/dev-utils/.github/workflows/configurations/coverage_colcon.meta source /home/runner/work/fastdds/install/setup.bash colcon build \ --event-handlers=console_direct+ \ - --metas src/dev-utils/.github/workflows/coverage_colcon.meta \ + --metas src/dev-utils/.github/workflows/configurations/coverage_colcon.meta \ --mixin coverage-gcc asan-gcc - name: Run tests @@ -542,11 +542,11 @@ jobs: - name: Build workspace run: | - cat src/dev-utils/.github/workflows/clang_colcon.meta + cat src/dev-utils/.github/workflows/configurations/clang_colcon.meta source /home/runner/work/fastdds/install/setup.bash colcon build \ --event-handlers=console_direct+ \ - --metas src/dev-utils/.github/workflows/clang_colcon.meta + --metas src/dev-utils/.github/workflows/configurations/clang_colcon.meta - name: Run clang-tidy run: | @@ -677,5 +677,5 @@ jobs: - name: Check flake8 linter run: | cd src/dev-utils - python3 -m flake8 --config ./.github/workflows/setup.cfg ${MODIFIED_FILES} + python3 -m flake8 --config ./.github/workflows/configurations/setup.cfg ${MODIFIED_FILES} if: always() From 4ea841205658a3f4ecf84a2845189791d12f2aab Mon Sep 17 00:00:00 2001 From: jparisu Date: Wed, 16 Nov 2022 15:21:57 +0100 Subject: [PATCH 3/3] remove test file Signed-off-by: jparisu --- linter_test.tmp.py | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 linter_test.tmp.py diff --git a/linter_test.tmp.py b/linter_test.tmp.py deleted file mode 100644 index 605d3e66..00000000 --- a/linter_test.tmp.py +++ /dev/null @@ -1,15 +0,0 @@ -# No docstring - -# unused import -import os - -def function_without_docstring(): - pass - -def function_too_close(): - pass - - -unused_variable = 'this is so bad' -too_long_line = 'wololooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo' -double_quotes = "ouch"