TST: simplify CI with setup-uv@v5 #123
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 (bleeding edge) | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
paths: | |
- .github/workflows/bleeding-edge.yaml | |
schedule: | |
# run this every Wednesday at 3 am UTC | |
- cron: 0 3 * * 3 | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: tests with bleeding-edge crucial deps | |
timeout-minutes: 60 | |
concurrency: | |
# auto-cancel any in-progress job *on the same branch* | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Set up Python (newest testable version) | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.13-dev | |
- uses: astral-sh/setup-uv@v5 | |
- name: Configure uv | |
run: | | |
echo "UV_PYTHON_PREFERENCE=only-system" >> $GITHUB_ENV | |
echo "UV_PRERELEASE=allow" >> $GITHUB_ENV | |
echo "UV_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" >> $GITHUB_ENV | |
echo "UV_PYTHON=3.13" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: | | |
uv venv | |
uv pip install --no-build setuptools wheel numpy Cython | |
- name: Build | |
# --no-build-isolation is used to guarantee that build time dependencies | |
# are not installed by pip as specified from pyproject.toml, hence we get | |
# to use the dev version of numpy at build time. | |
run: | | |
uv pip install -e . --no-build-isolation | |
uv pip install pytest | |
- run: uv pip list | |
- name: Run Tests | |
run: | | |
source .venv/bin/activate | |
pytest --color=yes -ra | |
create-issue: | |
if: ${{ failure() && github.event_name == 'schedule' }} | |
needs: [build] | |
permissions: | |
issues: write | |
runs-on: ubuntu-latest | |
name: Create issue on failure | |
steps: | |
- name: Create issue on failure | |
uses: imjohnbo/issue-bot@v3 | |
with: | |
title: 'TST: Upcoming dependency test failures' | |
body: | | |
The weekly build with future dependencies has failed. Check the logs | |
https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} | |
pinned: false | |
close-previous: false | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |