feat(components): component index correctness + build caching #32442
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: autofix.ci | |
| on: | |
| pull_request: | |
| paths: | |
| - "**/*.py" | |
| - "src/lfx/src/lfx/components/**" | |
| - "scripts/build_component_index.py" | |
| types: [opened, synchronize, reopened, labeled] | |
| env: | |
| PYTHON_VERSION: "3.13" | |
| jobs: | |
| lint: | |
| name: Run Ruff Check and Format | |
| if: github.event.action != 'labeled' && github.actor != 'github-actions[bot]' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: "Setup Environment" | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| prune-cache: false | |
| - run: uv run ruff check --fix-only . | |
| - run: uv run ruff format . --config pyproject.toml | |
| - uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 | |
| update-starter-projects: | |
| name: Update Starter Projects | |
| if: github.event.action != 'labeled' && github.actor != 'github-actions[bot]' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: "Setup Environment" | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| prune-cache: false | |
| - name: "Install dependencies" | |
| run: | | |
| uv sync | |
| uv pip install -e . | |
| - name: Run starter projects update | |
| run: uv run python scripts/ci/update_starter_projects.py | |
| - uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 | |
| update-component-index: | |
| name: Update Component Index | |
| if: >- | |
| github.actor != 'github-actions[bot]' | |
| && (github.event.action != 'labeled' || github.event.label.name == 'fix-index') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| fetch-depth: 0 | |
| - name: Merge base branch | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git merge origin/${{ github.base_ref }} --no-edit || { | |
| # Check which files have conflicts | |
| CONFLICTED=$(git diff --name-only --diff-filter=U) | |
| # If any non-generated files conflict, bail out — needs manual resolution | |
| if echo "$CONFLICTED" | grep -v component_index.json | grep -q .; then | |
| echo "::error::Merge conflicts in non-generated files require manual resolution" | |
| git merge --abort | |
| exit 1 | |
| fi | |
| # Only component_index.json conflicts — resolve and finish merge | |
| git checkout --theirs src/lfx/src/lfx/_assets/component_index.json | |
| git add src/lfx/src/lfx/_assets/component_index.json | |
| GIT_EDITOR=true git merge --continue | |
| } | |
| - name: "Setup Environment" | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| prune-cache: false | |
| - name: "Install dependencies" | |
| run: uv sync --dev --project . | |
| - name: Build component index | |
| env: | |
| LFX_DEV: "1" | |
| run: make build_component_index | |
| - uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 |