Skip to content

chore(deps): bump astral-sh/setup-uv from 10.0.1 to 10.2.0 in the github-actions group across 1 directory #259

chore(deps): bump astral-sh/setup-uv from 10.0.1 to 10.2.0 in the github-actions group across 1 directory

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

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