Speed up CTC edge errors #197
Workflow file for this run
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
name: CI | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "v*" | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
# check-manifest: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - run: pipx run check-manifest | |
test: | |
name: ${{ matrix.platform }} (${{ matrix.python-version }}) | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
platform: [ubuntu-latest, macos-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache-dependency-path: "pyproject.toml" | |
cache: "pip" | |
# if running a cron job, we add the --pre flag to test against pre-releases | |
- name: Install dependencies | |
run: | | |
python -m pip install -U pip | |
python -m pip install -e .[test] | |
- name: Test | |
run: pytest --color=yes #--cov --cov-report=xml --cov-report=term-missing | |
# - name: Coverage | |
# uses: codecov/codecov-action@v3 | |
benchmark: | |
name: Benchmark | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 50 # this is to make sure we obtain the target base commit | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache-dependency-path: "pyproject.toml" | |
cache: "pip" | |
- name: Install dependencies | |
run: | | |
python -m pip install -U pip | |
python -m pip install -e .[test] | |
python -m pip install tabulate | |
- name: Retrieve cached baseline if available | |
uses: actions/cache/restore@v3 | |
id: cache | |
with: | |
path: baseline.json | |
key: ${{ github.event.pull_request.base.sha }} | |
- name: Run baseline benchmark if not in cache | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
git checkout ${{ github.event.pull_request.base.sha }} | |
pytest tests/bench.py --benchmark-json baseline.json | |
- name: Cache baseline results | |
uses: actions/cache/save@v3 | |
if: steps.cache.outputs.cache-hit != 'true' | |
with: | |
path: baseline.json | |
key: ${{ github.event.pull_request.base.sha }} | |
- name: Run benchmark on PR head commit | |
run: | | |
git checkout ${{ github.event.pull_request.head.sha }} | |
pytest tests/bench.py --benchmark-json pr.json | |
- name: Generate report | |
run: python .github/workflows/benchmark-pr.py baseline.json pr.json report.md | |
- name: Comment on commit with report for non-forks | |
uses: peter-evans/commit-comment@v3 | |
if: github.event.pull_request.head.repo.fork == false | |
with: | |
body-path: report.md | |
deploy: | |
name: Deploy | |
needs: test | |
if: success() && startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.x" | |
- name: install | |
run: | | |
git tag | |
pip install -U pip build twine | |
python -m build | |
twine check dist/* | |
ls -lh dist | |
- name: Build and publish | |
run: twine upload dist/* | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.TWINE_API_KEY }} | |
- uses: softprops/action-gh-release@v1 | |
with: | |
generate_release_notes: true |