Skip to content

Use uv for CI

Use uv for CI #678

Workflow file for this run

name: tests
on:
push:
branches: [master]
pull_request:
branches:
- master
schedule:
# Run every Sunday
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
code-quality:
name: Code Quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python and uv
uses: drivendataorg/setup-python-uv-action@v1
with:
python-version: 3.8
- name: Install dependencies
run: |
uv pip install -r requirements-dev/lint.txt
- name: Lint package
run: |
make lint
# tests:
# name: Test suite (${{ matrix.os }}, Python ${{ matrix.python-version }})
# needs: code-quality
# runs-on: ${{ matrix.os }}
# env:
# DISTUTILS_USE_SDK: 1 # for MSVC compiler
# strategy:
# matrix:
# os: [ubuntu-latest, macos-latest]
# python-version: [3.8, 3.9]
# steps:
# - if: matrix.os == 'ubuntu-latest'
# name: Maximize build space
# uses: easimon/maximize-build-space@master
# with:
# root-reserve-mb: 32000 # for pip packages in /tmp
# remove-dotnet: true
# remove-android: true
# remove-haskell: true
# remove-codeql: true
# - uses: actions/checkout@v4
# - name: Setup FFmpeg
# uses: Iamshankhadeep/[email protected]
# with:
# # Not strictly necessary, but it may prevent rate limit
# # errors especially on GitHub-hosted macos machines.
# token: ${{ secrets.GITHUB_TOKEN }}
# version: "4.4"
# - name: Configure Windows compilers
# uses: ilammy/msvc-dev-cmd@v1
# - name: Set up Python and uv
# uses: drivendataorg/setup-python-uv-action@v1
# with:
# python-version: ${{ matrix.python-version }}
# - name: Install dependencies
# run: |
# uv pip install -e .[tests]
# - name: Run tests
# run: |
# make tests
# - name: Run densepose tests
# env:
# ZAMBA_RUN_DENSEPOSE_TESTS: 1
# run: |
# uv pip install flit-core
# # torch is alread installed, so just add the densepose extra
# uv pip install -e .[densepose] --no-build-isolation
# make densepose-tests
# - name: Upload coverage to codecov
# uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# file: ./coverage.xml
# fail_ci_if_error: true
test-install:
name: Test install from built distributions
needs: tests

Check failure on line 101 in .github/workflows/tests.yml

View workflow run for this annotation

GitHub Actions / tests

Invalid workflow file

The workflow is not valid. .github/workflows/tests.yml (Line: 101, Col: 12): Job 'test-install' depends on unknown job 'tests'. .github/workflows/tests.yml (Line: 150, Col: 27): Job 'notify' depends on unknown job 'tests'.
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.8]
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 30000 # for pip packages in /tmp
remove-dotnet: true
remove-android: true
- uses: actions/checkout@v2
- name: Setup FFmpeg
uses: Iamshankhadeep/[email protected]
with:
# Not strictly necessary, but it may prevent rate limit
# errors especially on GitHub-hosted macos machines.
token: ${{ secrets.GITHUB_TOKEN }}
version: "4.4"
- name: Set up Python and uv
uses: drivendataorg/setup-python-uv-action@v1
with:
python-version: ${{ matrix.python-version }}
- name: Build package
run: |
uv pip install build
make dist
- name: Install wheel; test CLI + models with assets
run: |
uv pip install zamba@$(find dist -name 'zamba*.whl') --no-deps --force-reinstall
python -m zamba --help
python -c "from zamba.data.video import MegadetectorLiteYoloX; MegadetectorLiteYoloX()"
- name: Install source; test CLI + models with assets
run: |
uv pip install zamba@$(find dist -name 'zamba*.tar.gz') --no-deps --force-reinstall
python -m zamba --help
python -c "from zamba.data.video import MegadetectorLiteYoloX; MegadetectorLiteYoloX()"
notify:
name: Notify failed build
needs: [code-quality, tests, test-install]
if: failure() && (github.event_name == 'push' || github.event_name == 'schedule')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WORKFLOW_NAME: ${{ github.workflow }}
RUN_NUMBER: ${{ github.run_number}}
REPOSITORY: ${{ github.repository }}
RUN_ID: ${{ github.run_id }}
with:
filename: .github/failed_build_issue_template.md