chore: bump version to 0.1.4 and update install docs #134
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Continuous Integration workflow for Conductor | |
| # | |
| # Runs on: | |
| # - Push to main branch | |
| # - Pull requests to main branch | |
| # | |
| # Jobs: | |
| # - lint: Runs ruff linter and formatter check | |
| # - typecheck: Runs ty (Red Knot) type checker | |
| # - test: Runs pytest with coverage on Python 3.12 and 3.13 | |
| # - validate-examples: Validates all example workflow YAML files | |
| # - build: Verifies the package builds correctly | |
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| PYTHON_VERSION: "3.12" | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Set up Python | |
| run: uv python install ${{ env.PYTHON_VERSION }} | |
| - name: Install dependencies | |
| run: uv sync --group dev | |
| - name: Run ruff linter | |
| run: uv run ruff check src tests | |
| - name: Run ruff formatter check | |
| run: uv run ruff format --check src tests | |
| typecheck: | |
| name: Type Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Set up Python | |
| run: uv python install ${{ env.PYTHON_VERSION }} | |
| - name: Install dependencies | |
| run: uv sync --group dev | |
| - name: Run ty type checker | |
| run: uv run ty check src | |
| test: | |
| name: Test (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| needs: [lint, typecheck] | |
| strategy: | |
| matrix: | |
| python-version: ["3.12", "3.13"] | |
| fail-fast: false | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --group dev | |
| - name: Remove bundled Copilot CLI binary | |
| run: | | |
| # The github-copilot-sdk >=0.1.23 bundles a CLI binary that tries to | |
| # authenticate with GitHub on startup. Remove it so tests that invoke | |
| # the real CLI path fail fast instead of hanging on auth. | |
| find .venv -path '*/copilot/bin/copilot*' -delete 2>/dev/null || true | |
| - name: Run tests with coverage | |
| timeout-minutes: 10 | |
| run: uv run pytest --cov=src/conductor --cov-report=xml --cov-report=term-missing -m "not real_api and not performance" | |
| env: | |
| # Fake API key for mock tests to prevent accidental real API calls. | |
| # Real API tests (marked with @pytest.mark.real_api) are excluded from CI | |
| # via the marker filter. Performance tests are also excluded as they | |
| # contain timing-sensitive assertions that are flaky on shared CI runners. | |
| # This ensures CI tests are fast, free, and don't leak credentials. | |
| ANTHROPIC_API_KEY: "sk-ant-test-fake-key-for-mocking" | |
| - name: Upload coverage reports | |
| uses: codecov/codecov-action@v4 | |
| if: matrix.python-version == '3.12' | |
| with: | |
| file: ./coverage.xml | |
| fail_ci_if_error: false | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| validate-examples: | |
| name: Validate Example Workflows | |
| runs-on: ubuntu-latest | |
| needs: [lint] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Set up Python | |
| run: uv python install ${{ env.PYTHON_VERSION }} | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Validate example workflows | |
| run: | | |
| for file in examples/*.yaml; do | |
| echo "Validating $file..." | |
| uv run conductor validate "$file" | |
| done | |
| build: | |
| name: Build Package | |
| runs-on: ubuntu-latest | |
| needs: [test] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Set up Python | |
| run: uv python install ${{ env.PYTHON_VERSION }} | |
| - name: Build package | |
| run: uv build | |
| - name: Verify package contents | |
| run: | | |
| ls -la dist/ | |
| uv run python -m zipfile -l dist/*.whl | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/ | |
| retention-days: 7 |