From 73b9df6f60a67b09159b3472cf49956f83798651 Mon Sep 17 00:00:00 2001 From: Roy Smart Date: Fri, 12 Apr 2024 18:14:22 -0600 Subject: [PATCH] Added standard Github workflows. --- .github/workflows/black.yml | 17 +++++++++++++ .github/workflows/publish.yml | 33 +++++++++++++++++++++++++ .github/workflows/ruff.yml | 14 +++++++++++ .github/workflows/tests.yml | 45 +++++++++++++++++++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 .github/workflows/black.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/ruff.yml create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml new file mode 100644 index 0000000..e1c2298 --- /dev/null +++ b/.github/workflows/black.yml @@ -0,0 +1,17 @@ +name: Black + +on: + push: + branches: + - main + pull_request: + +jobs: + black: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: psf/black@stable + with: + options: "--check --verbose --diff" + src: "./ctis" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..de0d871 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,33 @@ +name: Publish to PyPI + +permissions: + id-token: write + +on: + release: + types: [published] + +jobs: + publish: + name: Build and publish to PyPI + if: startsWith(github.ref, 'refs/tags') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Set up Python + uses: actions/setup-python@v3 + - name: Install pypa/build + run: >- + python -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: >- + python -m + build + --sdist + --wheel + --outdir dist/ + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml new file mode 100644 index 0000000..50345c1 --- /dev/null +++ b/.github/workflows/ruff.yml @@ -0,0 +1,14 @@ +name: Ruff + +on: + push: + branches: + - main + pull_request: + +jobs: + ruff: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: chartboost/ruff-action@v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..a7d43b9 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,45 @@ + +name: tests + +on: + push: + branches: + - main + pull_request: + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ + ubuntu-latest, + windows-latest, + macOS-latest, + ] + python-version: ["3.11", "3.12"] + name: ${{ matrix.os }}, Python ${{ matrix.python-version }} test + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install package + run: | + python -m pip install --upgrade pip + pip install setuptools wheel + pip install -e .[test] + - name: Test with pytest + run: | + pip install pytest pytest-cov + pytest --cov=. --cov-report=xml + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + file: coverage.xml + flags: unittests + env_vars: OS,PYTHON + name: codecov-umbrella