Files

76 lines
1.9 KiB
YAML

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Continuous Integration (CI) GitHub Actions tests
name: Actions CI
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "0 0 * * *" # Runs at 00:00 UTC every day
permissions:
contents: read # Read code in PRs
id-token: write # Required for Codecov OIDC uploads
jobs:
Setup-uv-Windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v7
- uses: ./setup-uv
with:
python-version: "3.14"
activate-environment: true
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- run: |
uv --version
python -c "import os, sys; assert sys.version_info[:2] == (3, 14); assert os.environ['VIRTUAL_ENV'].endswith(r'\.venv')"
Test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest] # does not work with windows-latest
python-version: ["3.8", "3.14"]
steps:
- uses: actions/checkout@v7
- uses: ./setup-uv
with:
python-version: ${{ matrix.python-version }}
activate-environment: true
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Install dependencies
run: |
uv pip install -e ".[dev]"
- name: Run Python tests
uses: ultralytics/actions/retry@main
with:
retries: 1 # Retry once after initial attempt
run: |
python -m pytest tests -v --cov=actions --cov-report=xml:coverage.xml
- name: Run CLI tests
run: |
ultralytics-actions-info
- name: Upload coverage to Codecov
continue-on-error: true
uses: codecov/codecov-action@v7
with:
files: ./coverage.xml
disable_search: true
plugins: noop
use_oidc: true
fail_ci_if_error: false