Skip to content

Dependency canary

Dependency canary #41

name: Dependency canary
on:
schedule:
- cron: "0 6 * * *"
workflow_dispatch:
permissions: {}
concurrency:
group: daily-uv-canary
cancel-in-progress: true
jobs:
dependency-canary:
name: Dependency canary
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
id: checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Setup uv
id: setup_uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
- name: Install Python 3.13
id: install_python313
run: uv python install 3.13
- name: Upgrade lockfile
id: upgrade_lockfile
run: uv lock --upgrade
- name: Did uv.lock change?
id: changed
run: |
if git diff --quiet --exit-code -- uv.lock; then
echo "changed=false" >> "${GITHUB_OUTPUT}"
else
echo "changed=true" >> "${GITHUB_OUTPUT}"
fi
- name: Install dependencies
if: steps.changed.outputs.changed == 'true'
id: install_dependencies
run: uv sync --python 3.13
- name: Run tests
if: steps.changed.outputs.changed == 'true'
id: run_tests
run: uv run python -m pytest -m "duckdb" tests/