Repository navigation
chore(deps): bump astral-sh/setup-uv from 10.0.1 to 10.2.0 in the github-actions group across 1 directory #259
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
| name: pr-validation | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| merge_group: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| dependency-manifest-validation: | |
| name: dependency manifest validation | |
| if: ${{ github.event_name == 'pull_request' && (github.actor == 'dependabot[bot]' || startsWith(github.head_ref, 'dependabot/')) }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
| - name: Setup Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: "0.11.21" | |
| prune-cache: true | |
| - name: Check uv lockfile | |
| run: | | |
| set -euo pipefail | |
| uv lock --check | |
| - name: Check frozen uv sync remains usable | |
| run: | | |
| uv sync --frozen --all-groups --python python3 | |
| uv run --frozen python -c "import yaml, requests, frontmatter, cryptography, pgpy, jsonschema" | |
| generated-docs-and-version: | |
| name: generated docs and version sync | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
| - name: Setup Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: "0.11.21" | |
| prune-cache: true | |
| - name: Sync dependencies | |
| run: uv sync --frozen --all-groups --python python3 | |
| - name: Check version and generated docs | |
| env: | |
| BEFORE_SHA: ${{ github.event.before }} | |
| HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
| MERGE_GROUP_BASE_SHA: ${{ github.event.merge_group.base_sha }} | |
| PR_BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
| run: | | |
| set -euo pipefail | |
| base_sha="" | |
| if git log -1 --pretty=%s | grep -q '^chore: sync release version '; then | |
| base_sha="$(git rev-parse HEAD~2)" | |
| fi | |
| for candidate in "$PR_BASE_SHA" "$MERGE_GROUP_BASE_SHA" "$BEFORE_SHA"; do | |
| if [[ -n "$base_sha" ]]; then | |
| break | |
| fi | |
| if [[ -n "$candidate" && "$candidate" != "0000000000000000000000000000000000000000" ]]; then | |
| if git cat-file -e "${candidate}^{commit}" 2>/dev/null; then | |
| base_sha="$candidate" | |
| break | |
| fi | |
| fi | |
| done | |
| if [[ -z "$base_sha" ]]; then | |
| git fetch origin main --depth=1 | |
| base_sha="$(git merge-base HEAD origin/main)" | |
| fi | |
| echo "Checking version plan from ${base_sha} to ${HEAD_SHA}" | |
| uv run --frozen python ls/tools/localsetup.py --source-root . version-plan --base "$base_sha" --head "$HEAD_SHA" | |
| uv run --frozen python ls/tools/localsetup.py --source-root . version-sync --check --base "$base_sha" --head "$HEAD_SHA" | |
| git diff --exit-code | |
| documentation: | |
| name: documentation | |
| uses: ./.github/workflows/docs-sync.yml | |
| quality: | |
| name: quality | |
| uses: ./.github/workflows/qc-ci.yml | |
| framework-prerequisites: | |
| name: framework prerequisites | |
| permissions: | |
| contents: read | |
| actions: read | |
| needs: [generated-docs-and-version, shell-smoke-and-audit, documentation, quality] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| outputs: | |
| reuse: ${{ steps.evidence.outputs.reuse }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
| - name: Setup Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: "0.11.21" | |
| prune-cache: true | |
| - name: Sync dependencies | |
| run: uv sync --frozen --all-groups --python python3 | |
| - name: Verify framework context | |
| run: | | |
| ./ls/tools/verify_context | |
| ./ls/tools/verify_rules | |
| - name: Validate product branding | |
| run: uv run --frozen python ls/tools/validate_branding.py --repo-root . --strict | |
| - name: Validate Python architecture | |
| run: uv run --frozen python ls/tools/python_architecture_check.py --repo-root . --baseline ls/config/python-architecture-baseline.json | |
| - name: Validate catalogs and migration boundaries | |
| run: | | |
| uv run --frozen python ls/tools/localsetup.py --source-root . validate-catalog | |
| uv run --frozen python ls/tools/localsetup.py --source-root . scan-migration | |
| uv run --frozen python ls/tools/localsetup.py --source-root . skill search context | |
| uv run --frozen python ls/tools/localsetup.py --source-root . workflow search audit | |
| uv run --frozen python ls/tools/localsetup.py --source-root . why --packs core | |
| uv run --frozen python ls/tools/localsetup.py --source-root . graph | |
| uv run --frozen python ls/tools/localsetup.py --source-root . adopt --target-directory . | |
| uv run --frozen python ls/tools/localsetup.py --source-root . sbom --out /tmp/localsetup-source.cdx.json | |
| - name: Reuse successful validation of this exact commit | |
| id: evidence | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| CANDIDATE_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
| run: | | |
| set -euo pipefail | |
| python ls/tools/ci_evidence.py --repository "$GITHUB_REPOSITORY" \ | |
| --sha "$CANDIDATE_SHA" --exclude-run-id "$GITHUB_RUN_ID" \ | |
| --job 'framework validation py3.12' \ | |
| --job 'shell smoke and framework audit' \ | |
| --job 'generated docs and version sync' \ | |
| --job 'documentation / generated docs drift' \ | |
| --job 'quality / deterministic qc' > /tmp/ci-evidence.json | |
| cat /tmp/ci-evidence.json >> "$GITHUB_STEP_SUMMARY" | |
| if [[ "$GITHUB_EVENT_NAME" = workflow_dispatch ]]; then | |
| echo "reuse=false" >> "$GITHUB_OUTPUT" | |
| exit 0 | |
| fi | |
| echo "reuse=$(python -c 'import json; print(str(json.load(open("/tmp/ci-evidence.json"))["ok"]).lower())')" >> "$GITHUB_OUTPUT" | |
| framework-validation: | |
| name: framework shard ${{ matrix.shard }} py${{ matrix.python-version }} | |
| needs: framework-prerequisites | |
| if: needs.framework-prerequisites.outputs.reuse != 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12"] | |
| shard: [0, 1, 2, 3, 4, 5, 6, 7] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
| - name: Setup Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: "0.11.21" | |
| prune-cache: true | |
| - name: Sync dependencies | |
| run: uv sync --frozen --all-groups --python python3 | |
| - name: Run pytest | |
| env: | |
| CANDIDATE_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
| run: | | |
| set -euo pipefail | |
| test "$(git rev-parse HEAD)" = "$CANDIDATE_SHA" | |
| workers="$(uv run --frozen python ls/tools/localsetup.py --source-root . test-workers)" | |
| uv run --frozen --group s3-sdk pytest -n "$workers" ls/tests -q \ | |
| --ci-shard=${{ matrix.shard }} --ci-shards=8 --maxfail=1 --durations=20 | |
| framework-result: | |
| name: framework validation py3.12 | |
| needs: [framework-prerequisites, framework-validation] | |
| if: always() | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 2 | |
| steps: | |
| - name: Require all shards or verified prior success | |
| env: | |
| PREREQUISITES: ${{ needs.framework-prerequisites.result }} | |
| REUSED: ${{ needs.framework-prerequisites.outputs.reuse }} | |
| SHARDS: ${{ needs.framework-validation.result }} | |
| run: | | |
| set -euo pipefail | |
| test "$PREREQUISITES" = success | |
| if [[ "$REUSED" = true ]]; then | |
| test "$SHARDS" = skipped | |
| else | |
| test "$SHARDS" = success | |
| fi | |
| shell-smoke-and-audit: | |
| name: shell smoke and framework audit | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
| - name: Setup Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 | |
| with: | |
| version: "0.11.21" | |
| prune-cache: true | |
| - name: Sync dependencies | |
| run: uv sync --frozen --all-groups --python python3 | |
| - name: Run framework audit | |
| run: uv run --frozen python ls/skills/ls-framework-audit/scripts/run_framework_audit.py --output /tmp/ls-framework-audit.md | |
| - name: Run shell smoke tests | |
| run: uv run --frozen ./ls/tests/automated_test.sh | |
| - name: Check whitespace-safe diff | |
| run: git diff --check |