Skip to content

chore: bump version to 0.1.4 and update install docs #134

chore: bump version to 0.1.4 and update install docs

chore: bump version to 0.1.4 and update install docs #134

Workflow file for this run

# 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