diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8591d2dd..256328de7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,74 +2,38 @@ name: Test Suite on: push: - branches: [main, nightly] + branches: [ main, nightly ] pull_request: - branches: [main, nightly] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read + branches: [ main, nightly ] jobs: - lint: - runs-on: ubuntu-latest - timeout-minutes: 5 - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.14" - - - name: Install uv - uses: astral-sh/setup-uv@v4 - with: - enable-cache: true - cache-dependency-glob: "uv.lock" - - - name: Install system dependencies - run: sudo apt-get update && sudo apt-get install -y libolm-dev build-essential - - - name: Install dependencies - run: uv sync --all-extras - - - name: Lint with ruff - run: uv run ruff check nanobot --select F - test: - needs: lint runs-on: ${{ matrix.os }} - timeout-minutes: 20 strategy: - fail-fast: false matrix: - os: ${{ github.event_name == 'pull_request' && fromJSON('["ubuntu-latest"]') || fromJSON('["ubuntu-latest","windows-latest"]') }} - python-version: ${{ github.event_name == 'pull_request' && fromJSON('["3.11","3.14"]') || fromJSON('["3.11","3.12","3.13","3.14"]') }} + os: [ubuntu-latest, windows-latest] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} - - name: Install uv - uses: astral-sh/setup-uv@v4 - with: - enable-cache: true - cache-dependency-glob: "uv.lock" + - name: Install uv + uses: astral-sh/setup-uv@v4 - - name: Install system dependencies (Linux) - if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y libolm-dev build-essential + - name: Install system dependencies (Linux) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y libolm-dev build-essential - - name: Install dependencies - run: uv sync --all-extras + - name: Install dependencies + run: uv sync --all-extras - - name: Run tests - run: uv run pytest tests/ + - name: Lint with ruff + run: uv run ruff check nanobot --select F + + - name: Run tests + run: uv run pytest tests/