-
Notifications
You must be signed in to change notification settings - Fork 99
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
Showing
18 changed files
with
1,110 additions
and
176 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,72 @@ | ||
name: Build package and push to PyPi | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
tags: | ||
- "v*.*.*" | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
env: | ||
PYTHON: 3.12 | ||
POETRY_HOME: "~/poetry" | ||
|
||
steps: | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # Includes getting tags | ||
|
||
- name: Set up python ${{ env.PYTHON }} | ||
id: setup-python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ env.PYTHON }} | ||
|
||
- name: Cache Poetry Install | ||
uses: actions/cache@v4 | ||
id: cached-poetry | ||
with: | ||
path: ${{ env.POETRY_HOME }} | ||
key: poetry-cache-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('.github/workflows/deploy.yaml') }} | ||
|
||
- name: Install poetry | ||
uses: snok/install-poetry@v1 | ||
if: steps.cached-poetry.outputs.cache-hit != 'true' | ||
|
||
- name: Add Poetry to PATH # Needs to be separate from install-poetry because cache. | ||
run: | | ||
echo "$POETRY_HOME/bin" >> $GITHUB_PATH | ||
- name: Configure Poetry # Needs to be separate from install-poetry because cache. | ||
run: | | ||
poetry self add poetry-dynamic-versioning[plugin] | ||
poetry config virtualenvs.create true | ||
poetry config virtualenvs.in-project true | ||
- name: Cache venv | ||
uses: actions/cache@v4 | ||
id: cached-venv | ||
with: | ||
path: .venv/ | ||
key: venv-cache-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('.github/workflows/deploy.yaml') }} | ||
|
||
- name: Install project | ||
run: poetry install --no-interaction | ||
|
||
- name: Build package | ||
run: poetry build | ||
|
||
- name: Publish package | ||
if: github.event_name != 'workflow_dispatch' | ||
run: | | ||
poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }} | ||
poetry publish | ||
- uses: actions/upload-artifact@v4 | ||
if: always() | ||
with: | ||
name: dist | ||
path: dist/ |
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,99 @@ | ||
# Regular tests | ||
# | ||
# Use this to ensure your tests are passing on every push and PR (skipped on | ||
# pushes which only affect documentation). | ||
# | ||
# You should make sure you run jobs on at least the *oldest* and the *newest* | ||
# versions of python that your codebase is intended to support. | ||
|
||
name: tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
|
||
jobs: | ||
test: | ||
timeout-minutes: 10 | ||
defaults: | ||
run: | ||
shell: bash | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, macos-13, windows-latest] | ||
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] | ||
env: | ||
OS: ${{ matrix.os }} | ||
PYTHON: ${{ matrix.python-version }} | ||
POETRY_HOME: "~/poetry" | ||
|
||
steps: | ||
- name: Set OS Environment Variables (Windows) | ||
if: runner.os == 'Windows' | ||
run: | | ||
echo 'ACTIVATE_PYTHON_VENV=.venv/scripts/activate' >> $GITHUB_ENV | ||
- name: Set OS Environment Variables (not Windows) | ||
if: runner.os != 'Windows' | ||
run: | | ||
echo 'ACTIVATE_PYTHON_VENV=.venv/bin/activate' >> $GITHUB_ENV | ||
- name: Check out repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up python ${{ matrix.python-version }} | ||
id: setup-python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Cache Poetry Install | ||
uses: actions/cache@v4 | ||
id: cached-poetry | ||
with: | ||
path: ${{ env.POETRY_HOME }} | ||
key: poetry-cache-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('.github/workflows/tests.yaml') }} | ||
|
||
- name: Install poetry | ||
uses: snok/install-poetry@v1 | ||
if: steps.cached-poetry.outputs.cache-hit != 'true' | ||
|
||
- name: Add Poetry to PATH # Needs to be separate from install-poetry because cache. | ||
run: | | ||
echo "$POETRY_HOME/bin" >> $GITHUB_PATH | ||
- name: Configure Poetry # Needs to be separate from install-poetry because cache. | ||
run: | | ||
poetry config virtualenvs.create true | ||
poetry config virtualenvs.in-project true | ||
poetry config installer.parallel ${{ runner.os != 'Windows' }} # Currently there seems to be some race-condition in windows | ||
- name: Cache venv | ||
uses: actions/cache@v4 | ||
id: cached-venv | ||
with: | ||
path: .venv/ | ||
key: venv-cache-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('.github/workflows/tests.yaml') }} | ||
|
||
- name: Install library | ||
run: poetry install --no-interaction | ||
|
||
- name: Cache pre-commit | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.cache/pre-commit/ | ||
key: pre-commit-${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('.pre-commit-config.yaml') }} | ||
|
||
- name: Pre-commit run | ||
run: | | ||
source ${{ env.ACTIVATE_PYTHON_VENV }} | ||
pre-commit run --show-diff-on-failure --color=always --all-files | ||
- name: Run tests | ||
run: | | ||
source ${{ env.ACTIVATE_PYTHON_VENV }} | ||
python -m pytest |
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,49 @@ | ||
exclude: ^(poetry.lock|.idea/) | ||
repos: | ||
- repo: https://github.com/astral-sh/ruff-pre-commit | ||
rev: "v0.8.3" | ||
hooks: | ||
- id: ruff | ||
args: [--fix, --exit-non-zero-on-fix] | ||
- id: ruff-format | ||
|
||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v5.0.0 | ||
hooks: | ||
- id: check-added-large-files | ||
- id: check-case-conflict | ||
- id: check-docstring-first | ||
- id: check-shebang-scripts-are-executable | ||
- id: check-merge-conflict | ||
- id: check-json | ||
- id: check-toml | ||
- id: check-xml | ||
- id: check-yaml | ||
- id: debug-statements | ||
- id: destroyed-symlinks | ||
- id: detect-private-key | ||
- id: end-of-file-fixer | ||
exclude: ^LICENSE|\.(html|csv|txt|svg|py)$ | ||
- id: pretty-format-json | ||
args: ["--autofix", "--no-ensure-ascii", "--no-sort-keys"] | ||
- id: requirements-txt-fixer | ||
- id: trailing-whitespace | ||
args: [--markdown-linebreak-ext=md] | ||
exclude: \.(html|svg)$ | ||
|
||
- repo: https://github.com/fredrikaverpil/creosote.git | ||
rev: v3.2.0 | ||
hooks: | ||
- id: creosote | ||
|
||
- repo: https://github.com/codespell-project/codespell | ||
rev: v2.3.0 | ||
hooks: | ||
- id: codespell | ||
additional_dependencies: | ||
- tomli | ||
|
||
- repo: https://github.com/RobertCraigie/pyright-python | ||
rev: v1.1.390 | ||
hooks: | ||
- id: pyright |
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
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.