diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 00000000..e8bb4e48 --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,62 @@ +name: CI-Lint + +on: + push: + branches: [main] + pull_request: {} + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + check-manifest: + if: github.event_name != 'schedule' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: pipx run check-manifest + + pre-commit: + if: github.event_name != 'schedule' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - uses: pre-commit/action@v3.0.1 + + typing: + if: github.event_name != 'schedule' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: install + run: | + python -m pip install -U pip + python -m pip install -e ".[test]" + - name: type-check + run: | + mypy --install-types --non-interactive --config-file pyproject.toml subliminal tests + + docs: + if: github.event_name != 'schedule' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - run: | + python -m venv venv + source ./venv/bin/activate + python -m pip install -e .[docs] + sphinx-build -b html docs/ docs/_build + - uses: actions/upload-artifact@v4 + with: + name: docs + path: docs/_build/ diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml new file mode 100644 index 00000000..7db67b36 --- /dev/null +++ b/.github/workflows/run-tests.yaml @@ -0,0 +1,59 @@ +name: CI-Test + +on: + push: + branches: [main] + pull_request: {} + schedule: + - cron: "12 12 12 * *" # run once a month on the 12th at 12:12 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: Test + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + exclude: + # macos-latest only work with arm64 + - os: macos-latest + python-version: ["3.8", "3.9"] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + - name: install + run: | + python -m pip install --upgrade pip + pip install -e .[test] + - name: run pytest --cov + run: | + set -e + pytest --cov=./ --cov-report=xml + : .coverage confuses coveralls, remove it + rm -f .coverage + - name: upload coverage data to coveralls + uses: coverallsapp/github-action@v2.2.3 + with: + parallel: true + flag-name: python-${{ matrix.python-version }} + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: upload coverage data to codecov + uses: codecov/codecov-action@v4.1.0 + with: + fail_ci_if_error: true + coveralls-finish: + needs: test + runs-on: ubuntu-latest + steps: + - uses: coverallsapp/github-action@v2.2.3 + with: + parallel-finished: true