Skip to content

ci: Update cache action version #38

ci: Update cache action version

ci: Update cache action version #38

Workflow file for this run

name: Tests, Code Quality, Build
on:
push:
tags:
- "*"
pull_request:
branches:
- main
jobs:
test:
name: Run unit tests
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.10", "3.11", "3.12", "3.13" ]
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --extra test
- name: Run test suite
run: uv run pytest --cov=order_matching
benchmark:
name: Run benchmark
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: uv sync --extra test
- name: Run benchmark
run: uv run ./benchmark.sh
- name: Download previous benchmark data
uses: actions/cache@v4
with:
path: ./cache
key: ${{ runner.os }}-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: pytest
output-file-path: benchmark.json
external-data-json-path: ./cache/benchmark-data.json
fail-on-alert: false
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-on-alert: true
alert-comment-cc-users: '@${GITHUB_ACTOR},@khrapovs'
code-quality:
name: Code quality checks
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: set PY
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> ${GITHUB_ENV}
- uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Install dependencies
run: pip install pre-commit
- name: Run pre-commit
run: pre-commit run -v --show-diff-on-failure
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: uv sync --extra doc
- name: Build documentation
run: uv run mkdocs build -s -c
build:
name: Build wheels
needs: [ test, benchmark, code-quality, docs ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build wheels and source distribution
run: |
python -m pip install build
python -m build --wheel --sdist --outdir dist
- uses: actions/upload-artifact@v4
with:
name: wheels
path: dist/*
upload-pypi:
name: Upload to PyPi
needs: [ build ]
runs-on: ubuntu-latest
environment:
name: release
url: https://pypi.org/p/order-matching/
permissions:
id-token: write
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
path: dist
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/