Skip to content

refactor: centralize nanoseconds constant #86

refactor: centralize nanoseconds constant

refactor: centralize nanoseconds constant #86

Workflow file for this run

name: ci
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
push:
branches: [main]
pull_request:
jobs:
checks:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Floor and current: catches accidental >3.11 syntax and new-runtime breakage.
python-version: ["3.11", "3.14"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install ffmpeg (the test suite pins to the system binary)
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends ffmpeg
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
python-version: ${{ matrix.python-version }}
- name: Sync environment
run: uv sync --locked --all-extras
- name: Lint
run: uv run ruff check
- name: Format check
run: uv run ruff format --check
- name: Typecheck
run: uv run ty check
- name: Tests
run: uv run pytest -q
links:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Check markdown links
uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2
with:
# references/ holds mirrored third-party docs whose links we don't own.
args: --no-progress --include-fragments --exclude '^https://github\.com/Hebbian-Robotics/hflow/(issues|security/advisories/new)$' --exclude-path references/mcap-spec.md --exclude-path references/foxglove-CompressedVideo.proto .
fail: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}