feat: добавлены файлы конфигурации линтеров и GitHub Actions для проверки кода

- Создан файл `.gitea/workflows/lint.yaml` для настройки проверок в Gitea.
- Добавлен файл `.pre-commit-config.yaml` с конфигурацией pre-commit hooks.
- Создан файл `.github/workflows/lint.yaml` для линтинга кода при push в GitHub.
This commit is contained in:
proDream 2025-01-10 02:25:20 +04:00
parent 4d3efdcd27
commit 753834e7b5
4 changed files with 160 additions and 1 deletions

@ -0,0 +1,54 @@
name: Lint project
on:
push:
jobs:
lint:
env:
RUNNER_TOOL_CACHE: /opt/hostedtoolcache
runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: 'pip'
env:
AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache
- name: Cache pre-commit hooks
id: cache-pre-commit
uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-pre-commit-cache
restore-keys: |
${{ runner.os }}-pre-commit-cache
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
poetry run pre-commit install
- name: Lint pre-commit
run: poetry run pre-commit run --all-files --hook-stage manual
- name: Run Telegram Notify Action
uses: proDreams/actions-telegram-notifier@v1
if: always()
with:
token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
status: ${{ job.status }}
message: "Gitea Lkeep Lint"
notify_fields: "actor,repository,workflow"

54
.github/workflows/lint.yaml vendored Normal file

@ -0,0 +1,54 @@
name: Lint project
on:
push:
jobs:
lint:
env:
RUNNER_TOOL_CACHE: /opt/hostedtoolcache
runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: 'pip'
env:
AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache
- name: Cache pre-commit hooks
id: cache-pre-commit
uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-pre-commit-cache
restore-keys: |
${{ runner.os }}-pre-commit-cache
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
poetry run pre-commit install
- name: Lint pre-commit
run: poetry run pre-commit run --all-files --hook-stage manual
- name: Run Telegram Notify Action
uses: proDreams/actions-telegram-notifier@v1
if: always()
with:
token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
chat_id: ${{ secrets.TELEGRAM_CHAT_ID }}
status: ${{ job.status }}
message: "Github Lkeep Lint"
notify_fields: "actor,repository,workflow"

51
.pre-commit-config.yaml Normal file

@ -0,0 +1,51 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
- id: check-yaml
- id: check-case-conflict
- id: check-merge-conflict
- id: end-of-file-fixer
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
exclude: __init__.py
args: [ --profile, black, --filter-files ]
- repo: https://github.com/asottile/pyupgrade
rev: v3.19.0
hooks:
- id: pyupgrade
args: [ --py312-plus ]
- repo: https://github.com/hhatto/autopep8
rev: v2.3.1
hooks:
- id: autopep8
args: [ --max-line-length=120, --in-place ]
- repo: https://github.com/PyCQA/flake8
rev: 7.1.1
hooks:
- id: flake8
exclude: "__init__.py"
# args: [ "--ignore=E501,F821,W503", "--max-line-length=120" ]
args: [ "--ignore=E501,W503", "--max-line-length=120" ]
- repo: https://github.com/psf/black
rev: 24.10.0
hooks:
- id: black
language_version: python3.12
args: [ --line-length=120 ]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.4
hooks:
- id: ruff
args: [ "--fix", "--line-length=120" ]
- id: ruff-format
args: [ "--line-length=120" ]

@ -1,3 +1,3 @@
# Lkeep
## TODO
## TODO