diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index f693540..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: CI -on: [ push, pull_request ] - -jobs: - ci: - runs-on: ubuntu-latest - - steps: - # https://github.com/actions/checkout - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - name: Install poetry - uses: abatilo/actions-poetry@v2 - - name: Setup a local virtual environment (if no poetry.toml file) - run: | - poetry config virtualenvs.create true --local - poetry config virtualenvs.in-project true --local - - uses: actions/cache@v3 - name: Define a cache for the virtual environment based on the dependencies lock file - with: - path: ./.venv - key: venv-${{ hashFiles('poetry.lock') }} - - name: Install the project dependencies - run: poetry install - - name: isort - run: poetry run isort . - - name: black - run: poetry run black . --check - - name: mypy - run: poetry run mypy . \ No newline at end of file diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml new file mode 100644 index 0000000..f58abd2 --- /dev/null +++ b/.github/workflows/static-analysis.yml @@ -0,0 +1,97 @@ +name: Static analysis + +on: [ pull_request ] + +jobs: + Black: + runs-on: ubuntu-latest + + steps: + # https://github.com/actions/checkout + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install poetry + uses: abatilo/actions-poetry@v2 + + - name: Setup a local virtual environment (if no poetry.toml file) + run: | + poetry config virtualenvs.create true --local + poetry config virtualenvs.in-project true --local + + - uses: actions/cache@v4 + name: Define a cache for the virtual environment based on the dependencies lock file + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }} + + - name: Install the project dependencies + run: poetry install + + - name: black + run: poetry run black . --check + + iSort: + runs-on: ubuntu-latest + + steps: + # https://github.com/actions/checkout + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install poetry + uses: abatilo/actions-poetry@v2 + + - name: Setup a local virtual environment (if no poetry.toml file) + run: | + poetry config virtualenvs.create true --local + poetry config virtualenvs.in-project true --local + + - uses: actions/cache@v4 + name: Define a cache for the virtual environment based on the dependencies lock file + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }} + + - name: Install the project dependencies + run: poetry install + + - name: isort + run: poetry run isort . + + MyPy: + runs-on: ubuntu-latest + + steps: + # https://github.com/actions/checkout + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install poetry + uses: abatilo/actions-poetry@v2 + + - name: Setup a local virtual environment (if no poetry.toml file) + run: | + poetry config virtualenvs.create true --local + poetry config virtualenvs.in-project true --local + + - uses: actions/cache@v4 + name: Define a cache for the virtual environment based on the dependencies lock file + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }} + + - name: Install the project dependencies + run: poetry install + + - name: mypy + run: poetry run mypy --strict .