Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
30cf195
commit bb41d39
Showing
20 changed files
with
709 additions
and
657 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# Based on | ||
# https://pypi.org/project/tox-gh-actions/ | ||
|
||
--- | ||
name: Test the application. | ||
|
||
on: | ||
- push | ||
- pull_request | ||
|
||
jobs: | ||
code-check: | ||
name: Code checking | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.11" | ||
- name: Install poetry | ||
run: pipx install poetry | ||
- name: Set python version for poetry | ||
run: poetry env use python3.11 | ||
- name: Install dependencies | ||
run: poetry install -E lint | ||
- name: Run Isort | ||
run: poetry run -v -- isort -c notifications/ sample_website/ | ||
- name: Run Black | ||
run: poetry run -v -- black --check notifications/ sample_website/ | ||
- name: Run Pylint | ||
run: poetry run -vvv -- pylint --rcfile=pyproject.toml --recursive=y -v notifications/ sample_website/ | ||
- name: Run Bandit | ||
run: poetry run -v -- bandit -c pyproject.toml -r notifications/ sample_website/ | ||
- name: Run Mypy | ||
run: poetry run -v -- mypy | ||
|
||
test: | ||
name: Testing | ||
runs-on: ubuntu-latest | ||
needs: code-check | ||
strategy: | ||
max-parallel: 4 | ||
matrix: | ||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | ||
django-version: ["3.2.0", "4.0.0", "4.1.0", "4.2.0"] | ||
exclude: | ||
- python-version: "3.11" | ||
django-version: ["3.2", "4.0.0"] | ||
- python-version: "3.12" | ||
django-version: ["3.2", "4.0.0", "4.1.0"] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install poetry | ||
run: pipx install poetry | ||
- name: Set python version for poetry | ||
run: poetry env use python${{ matrix.python-version }} | ||
- name: Install Django | ||
run: poetry add --lock django@~${{ matrix.django-version }} | ||
- name: Install dependencies | ||
run: poetry install -E test | ||
- name: Run tests | ||
run: poetry run -- pytest | ||
env: | ||
COVERAGE_FILE: ".coverage.${{ matrix.python-version }}.${{ matrix.django-version }}" | ||
- name: Store coverage file | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: coverage-${{ matrix.python-version }}-${{ matrix.django-version }} | ||
path: .coverage.${{ matrix.python-version }}.${{ matrix.django-version }} | ||
|
||
|
||
coverage: | ||
name: Coverage | ||
runs-on: ubuntu-latest | ||
needs: test | ||
permissions: | ||
pull-requests: write | ||
contents: write | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- uses: actions/download-artifact@v4 | ||
id: download | ||
with: | ||
pattern: coverage-* | ||
merge-multiple: true | ||
|
||
- name: Coverage comment | ||
id: coverage_comment | ||
uses: py-cov-action/python-coverage-comment-action@v3 | ||
with: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
MERGE_COVERAGE_FILES: true | ||
|
||
- name: Store Pull Request comment to be posted | ||
uses: actions/upload-artifact@v4 | ||
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true' | ||
with: | ||
name: python-coverage-comment-action | ||
path: python-coverage-comment-action.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: Post coverage comment | ||
|
||
on: | ||
workflow_run: | ||
workflows: ["CI"] | ||
types: | ||
- completed | ||
|
||
jobs: | ||
test: | ||
name: Coverage | ||
runs-on: ubuntu-latest | ||
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' | ||
permissions: | ||
# Gives the action the necessary permissions for publishing new | ||
# comments in pull requests. | ||
pull-requests: write | ||
# Gives the action the necessary permissions for editing existing | ||
# comments (to avoid publishing multiple comments in the same PR) | ||
contents: write | ||
# Gives the action the necessary permissions for looking up the | ||
# workflow that launched this workflow, and download the related | ||
# artifact that contains the comment to be published | ||
actions: read | ||
steps: | ||
# DO NOT run actions/checkout here, for security reasons | ||
# For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ | ||
- name: Post comment | ||
uses: py-cov-action/python-coverage-comment-action@v3 | ||
with: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,3 +16,4 @@ settings.json | |
.pytest_cache | ||
.vscode | ||
coverage.xml | ||
TODO.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Creating the development environment | ||
|
||
1. Install [Pyenv](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation) | ||
2. Install [PipX](https://github.com/pypa/pipx?tab=readme-ov-file#install-pipx) | ||
3. Install [Poetry](https://python-poetry.org/docs/#installing-with-pipx) with **PipX** | ||
4. install [Tox](https://tox.wiki/en/latest/installation.html#via-pipx) with **PipX** | ||
5. Install necessary python versions | ||
|
||
`pyenv install --skip-existing 3.8 3.9 3.10 3.11 3.12` | ||
|
||
6. Set python versions as local | ||
|
||
`pyenv local 3.12 3.11 3.10 3.9 3.8` | ||
|
||
7. Ensure poetry config | ||
|
||
`poetry config virtualenvs.create true` | ||
|
||
`poetry config virtualenvs.prefer-active-python true` | ||
8. Install the lib and dependencies with poetry | ||
|
||
`poetry install --all-extras` | ||
|
||
9. Initialize pre-commit | ||
|
||
`poetry run pre-commit install` | ||
|
||
|
||
|
||
# Running tests | ||
To run the tests you can use any of the commands bellow: | ||
|
||
1. `make tests` To run all tests over all environment combinations | ||
2. `make test-latest` To run all tests over the latest enviroment possible | ||
|
||
# Running code quality tools | ||
To options to run the linters are: | ||
|
||
1. `make isort` | ||
2. `make black` | ||
3. `make pylint` | ||
4. `make bandit` | ||
5. `make mypy` | ||
|
||
To run all linters over all files: `make lint` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.