diff --git a/.github/workflows/check_code.yml b/.github/workflows/check_code.yml index 2a549b21..2d48a7be 100644 --- a/.github/workflows/check_code.yml +++ b/.github/workflows/check_code.yml @@ -1,23 +1,12 @@ -name: Python check code +name: Code check -on: [push] +on: [push, pull_request] jobs: - build: - + lint: runs-on: ubuntu-latest - strategy: - matrix: - python: [3.8, 3.9] - steps: - uses: actions/checkout@v3 - - name: Setup Python - uses: actions/setup-python@v4 + - uses: chartboost/ruff-action@v1 with: - python-version: ${{ matrix.python }} - - name: Install Tox and any other packages - run: | - pip install tox - - name: Run Tox - run: tox -e check + args: "--diff" diff --git a/.github/workflows/incremental-cover-check.yml b/.github/workflows/incremental-cover-check.yml index 07fb0577..36ef809e 100644 --- a/.github/workflows/incremental-cover-check.yml +++ b/.github/workflows/incremental-cover-check.yml @@ -1,5 +1,7 @@ name: Coverage check on: [push, pull_request] +env: + UNITTEST: 1 jobs: lint: name: Code coverage @@ -8,6 +10,12 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 2 + - name: Setup PostgreSQL With Init Scripts + uses: m4nu56/postgresql-action@1.0 + with: + postgresql db: scantron + postgresql user: scantron + postgresql password: scantron - name: Use Node.js uses: actions/setup-node@v3 with: @@ -35,7 +43,6 @@ jobs: run: | coverage report -m coverage json - - name: Coverage check on pull_request uses: velis74/incremental-coverage-check@main with: @@ -46,6 +53,7 @@ jobs: head_ref: HEAD rep_ref: main gh_token: ${{ secrets.GITHUB_TOKEN }} + pr_number: ${{github.event.pull_request.number}} if: github.event_name == 'pull_request' - name: Coverage check on push @@ -58,3 +66,7 @@ jobs: head_ref: HEAD rep_ref: main if: github.event_name == 'push' + + - name: The job has failed + run: exit 1 + if: ${{ failure() }} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..38ac620d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,43 @@ +[tool.ruff] +exclude = ['dockertest', + 'tests', 'docs', 'examples', 'scripts', 'setup.py', 'setup.cfg', 'README.md', 'LICENSE', 'MANIFEST.in', + 'pyproject.toml', 'Pipfile', 'Pipfile.lock', 'ruff.egg-info', 'dist', 'build', '.gitignore', '.git', '.idea', + '.vscode', '.pytest_cache', '.coverage', '.ruff', '*/migrations/*'] +line-length = 120 + +[tool.ruff.lint] +# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. +# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or +# McCabe complexity (`C901`) by default. +select = ["E4", "E7", "E9", "F", "I"] +ignore = ["E731", "E722"] + +# Allow fix for all enabled rules (when `--fix`) is provided. +fixable = ["ALL"] +unfixable = [] + +# Allow unused variables when underscore-prefixed. +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" + +[tool.ruff.format] + +# Like Black, use double quotes for strings. +quote-style = "double" + +# Like Black, indent with spaces, rather than tabs. +indent-style = "space" + +# Like Black, respect magic trailing commas. +skip-magic-trailing-comma = false + +# Like Black, automatically detect the appropriate line ending. +line-ending = "auto" + +[tool.ruff.lint.isort] +case-sensitive = false +lines-between-types = 1 +combine-as-imports = true +order-by-type = false +known-local-folder = [] + + diff --git a/requirements.txt b/requirements.txt index 6e4a2962..dae310f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,3 +10,5 @@ pillow typing; python_version < '3.5' django-cors-headers versio +ruff +ruff-lsp \ No newline at end of file