name: Code Check on: workflow_dispatch: inputs: run_pytest: description: "Run pytest tests" required: true type: boolean default: true jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: submodules: true - name: ruff check uses: astral-sh/ruff-action@v3 # with: # src: "./src" test: needs: lint if: ${{ inputs.run_pytest == true }} runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: submodules: true - name: Install the default version of uv id: setup-uv uses: astral-sh/setup-uv@v5 with: enable-cache: true cache-dependency-glob: "**/uv.lock" - name: Cache uv venv uses: actions/cache@v4 with: path: .venv key: ${{ runner.os }}-uv-${{ hashFiles('**/uv.lock') }} restore-keys: | ${{ runner.os }}-uv- - name: Install dependencies run: uv sync --locked --all-extras - name: Run tests with pytest run: .venv/bin/pytest -v -s tests/test_main.py