Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup CI #3

Merged
merged 4 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,12 @@ updates:
schedule:
interval: weekly

- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
groups:
actions-minor:
update-types:
- minor
- patch
97 changes: 97 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -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 .
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
.pytest/
htmlcov/
.tox/
.nox/
Expand Down
2 changes: 2 additions & 0 deletions tests/test_qupsy.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def test_qupsy() -> None:
pass