diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c9eb4a3..18f489a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,3 +5,12 @@ updates: schedule: interval: weekly + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + groups: + actions-minor: + update-types: + - minor + - patch diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..57df331 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,97 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: + contents: read + packages: read + statuses: write + pull-requests: write + +jobs: + test: + name: Test Codebase + + strategy: + matrix: + python-version: + - '3.10' + - '3.11' + - '3.12' + - '3.13' + + runs-on: ubuntu-latest + + 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 dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e .[test] + + - name: Run tests + run: | + pytest . --junitxml=.pytest/test-results.xml --cov=qupsy --cov-report=xml:.pytest/coverage.xml + + - name: Post test results + if: ${{ github.event_name == 'pull_request' }} + uses: sambyeol/publish-pytest-action@v3 + with: + title: Test Results (Python ${{ matrix.python-version }}) + junit-xml: .pytest/test-results.xml + coverage-xml: .pytest/coverage.xml + + lint: + name: Lint Codebase + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Lint Codebase + uses: super-linter/super-linter/slim@v7 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VALIDATE_ALL_CODEBASE: true + LINTER_RULES_PATH: . + VALIDATE_PYTHON_BLACK: true + VALIDATE_PYTHON_ISORT: true + PYTHON_ISORT_CONFIG_FILE: pyproject.toml + VALIDATE_YAML: true + + type-check: + name: Type Check Codebase + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.13 + uses: actions/setup-python@v5 + with: + python-version: '3.13' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e .[test,type] + + - name: Run type check + run: | + pyright . diff --git a/.gitignore b/.gitignore index 82f9275..129e28f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports +.pytest/ htmlcov/ .tox/ .nox/ diff --git a/qupsy/__init__.py b/qupsy/__init__.py index c57bfd5..6c8e6b9 100644 --- a/qupsy/__init__.py +++ b/qupsy/__init__.py @@ -1 +1 @@ -__version__ = '0.0.0' +__version__ = "0.0.0" diff --git a/tests/test_qupsy.py b/tests/test_qupsy.py new file mode 100644 index 0000000..8e47bac --- /dev/null +++ b/tests/test_qupsy.py @@ -0,0 +1,2 @@ +def test_qupsy() -> None: + pass