diff --git a/.github/workflows/lint_build_test.yaml b/.github/workflows/lint_build_test.yaml index 7f08373..d58857f 100644 --- a/.github/workflows/lint_build_test.yaml +++ b/.github/workflows/lint_build_test.yaml @@ -20,9 +20,42 @@ concurrency: cancel-in-progress: ${{ github.event.pull_request.number != null }} jobs: - build_lint_test: + lint: if: ${{ github.event.pull_request.draft != true }} runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + + - name: Install uv + uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 + with: + python-version: "3.12" + enable-cache: true + + # Install + - name: Install Dependencies + run: | + uv sync --frozen --all-extras --group dev + + # Ruff Linter + - name: Ruff Linter + run: | + uv run ruff check . + + # Ruff Format + - name: Ruff Format + run: | + uv run ruff format . --check + + - name: Check uv lock + run: | + uv lock --check + + test: + if: ${{ github.event.pull_request.draft != true }} + needs: lint + runs-on: ubuntu-latest strategy: matrix: # Support all LTS versions of Python @@ -41,57 +74,44 @@ jobs: uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 with: python-version: ${{ matrix.python-version }} - - - name: Check uv lock - run: | - uv lock --check + enable-cache: true # Install - name: Install Dependencies run: | uv sync --frozen --all-extras --group dev - # Ruff Linter - - name: Ruff Linter - run: | - uv run ruff check . - - # Ruff Format - - name: Ruff Format - run: | - uv run ruff format . --check - - # Mypy - name: Mypy Check run: | - uv run mypy . + uv run mypy --python-version ${{ matrix.python-version }} . # PyTest - name: Tests run: | uv run pytest --cov=mistral_common . --cov-report "xml:coverage.xml" - + # Doctests - name: Doctests run: | uv run pytest --doctest-modules ./src - + build_docs: if: ${{ github.event.pull_request.draft != true }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 - + - name: Install uv uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 with: - python-version: 3.14 - + python-version: "3.14" + enable-cache: true + - name: Install Dependencies run: | uv sync --frozen --all-extras --group docs - + - name: Build Docs run: | - uv run mkdocs build --strict + uv run mkdocs build --strict \ No newline at end of file