name: CI on: push: branches: [main, master] pull_request: jobs: lint: runs-on: ubuntu-latest container: image: python:3.12-slim steps: - name: Install git run: apt-get update && apt-get install -y --no-install-recommends git - name: Checkout run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" git clone --depth=1 --branch="${GITHUB_REF_NAME}" "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" "$GITHUB_WORKSPACE" || git clone --depth=1 "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" "$GITHUB_WORKSPACE" - run: pip install ruff black - name: Check formatting run: black --check src/ tests/ frontends/ - name: Lint run: ruff check src/ tests/ frontends/ typecheck: runs-on: ubuntu-latest container: image: python:3.12-slim steps: - name: Install git run: apt-get update && apt-get install -y --no-install-recommends git - name: Checkout run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" git clone --depth=1 --branch="${GITHUB_REF_NAME}" "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" "$GITHUB_WORKSPACE" || git clone --depth=1 "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" "$GITHUB_WORKSPACE" - run: pip install mypy - run: mypy src/ test: runs-on: ubuntu-latest container: image: python:3.12-slim steps: - name: Install git run: apt-get update && apt-get install -y --no-install-recommends git - name: Checkout run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" git clone --depth=1 --branch="${GITHUB_REF_NAME}" "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" "$GITHUB_WORKSPACE" || git clone --depth=1 "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" "$GITHUB_WORKSPACE" - name: Install dependencies run: pip install -e ".[dev]" - name: Run tests run: pytest --cov=soosef --cov-report=term-missing