76 lines
1.9 KiB
YAML
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
|