diff --git a/.gitignore b/.gitignore index 39ee305..9e809d1 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,6 @@ dist/ # Coverage .coverage coverage.xml + +# Nox +.nox diff --git a/README.md b/README.md index 4409ff3..36c5d41 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?style=flat-square&logo=pre-commit)][pre-commit.ci] +[![nox](https://img.shields.io/badge/%F0%9F%A6%8A-Nox-D85E00.svg?style=flat-square)][nox] [![ruff](https://img.shields.io/endpoint?style=flat-square&url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)][ruff] [![mypy](https://img.shields.io/badge/type--checked-mypy-blue?style=flat-square)][mypy] [![black](https://img.shields.io/badge/code%20style-black-black?style=flat-square)][black] @@ -36,5 +37,6 @@ Released under the [MIT License][license]. [gitmoji-website]: https://gitmoji.dev [license]: https://github.com/paduszyk/python-gitmojis/blob/main/LICENSE [mypy]: https://github.com/python/mypy +[nox]: https://github.com/wntrblm/nox [pre-commit.ci]: https://results.pre-commit.ci/latest/github/paduszyk/python-gitmojis/main [ruff]: https://github.com/astral-sh/ruff diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 0000000..c0b2ba8 --- /dev/null +++ b/noxfile.py @@ -0,0 +1,35 @@ +import nox + +# Nox sessions and configuration +# https://nox.thea.codes/en/stable/config.html + + +@nox.session() +def black(session: nox.Session) -> None: + session.install("black") + session.run("black", "--check", "--diff", ".") + + +@nox.session() +def mypy(session: nox.Session) -> None: + session.install("-e", ".") + session.install("mypy") + session.run("mypy", "--install-types", "--non-interactive", ".") + + +@nox.session() +def ruff(session: nox.Session) -> None: + session.install("ruff") + session.run("ruff", "check", "--diff", ".") + + +@nox.session( + python=[ + "3.10", + "3.11", + "3.12", + ] +) +def test(session: nox.Session) -> None: + session.install("-e", ".[test]") + session.run("pytest") diff --git a/pyproject.toml b/pyproject.toml index 04ebbbd..7dd16d2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,7 @@ dependencies = [] [project.optional-dependencies] dev = [ + "nox", "pre-commit", ] lint = [