diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 00000000..618b80b4 --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,58 @@ +name: "Copilot Setup Steps" + +# Automatically run the setup steps when they are changed to allow for easy validation, and +# allow manual testing through the repository's "Actions" tab +on: + workflow_dispatch: + push: + paths: + - .github/workflows/copilot-setup-steps.yml + pull_request: + paths: + - .github/workflows/copilot-setup-steps.yml + +jobs: + # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. + copilot-setup-steps: + runs-on: ubuntu-latest + + # Timeout after 30 minutes (maximum is 59) + timeout-minutes: 30 + + # You can define any steps you want, and they will run before the agent starts. + # If you do not check out your code, Copilot will do this for you. + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up Python 3.11 + uses: actions/setup-python@v6 + with: + python-version: '3.11' + + - name: Cache pip packages + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-copilot-${{ hashFiles('**/pyproject.toml') }} + restore-keys: | + ${{ runner.os }}-pip-copilot- + ${{ runner.os }}-pip- + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + pip install -e ".[api]" + pip install pytest pytest-asyncio httpx + + - name: Create minimal frontend stub for Copilot agent + run: | + mkdir -p lightrag/api/webui + echo 'LightRAG - Copilot Agent

Copilot Agent Mode

' > lightrag/api/webui/index.html + echo "Created minimal frontend stub for Copilot agent environment" + + - name: Verify installation + run: | + python --version + pip list | grep lightrag + lightrag-server --help || echo "Note: Server requires .env configuration to run" diff --git a/.github/workflows/docker-build-lite.yml b/.github/workflows/docker-build-lite.yml index 7a972fd6..76ae4cce 100644 --- a/.github/workflows/docker-build-lite.yml +++ b/.github/workflows/docker-build-lite.yml @@ -1,10 +1,10 @@ -name: Build Offline Docker Image +name: Build Lite Docker Image on: workflow_dispatch: inputs: _notes_: - description: '⚠️ Create offline Docker images only after non-trivial version releases.' + description: '⚠️ Create lite Docker images only after non-trivial version releases.' required: false type: boolean default: false @@ -14,11 +14,11 @@ permissions: packages: write jobs: - build-and-push-offline: + build-and-push-lite: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 @@ -34,12 +34,12 @@ jobs: fi echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - name: Prepare offline tag - id: offline_tag + - name: Prepare lite tag + id: lite_tag run: | - OFFLINE_TAG="${{ steps.get_tag.outputs.tag }}-offline" - echo "Offline image tag: $OFFLINE_TAG" - echo "offline_tag=$OFFLINE_TAG" >> $GITHUB_OUTPUT + LITE_TAG="${{ steps.get_tag.outputs.tag }}-lite" + echo "Lite image tag: $LITE_TAG" + echo "lite_tag=$LITE_TAG" >> $GITHUB_OUTPUT - name: Update version in __init__.py run: | @@ -62,23 +62,23 @@ jobs: with: images: ghcr.io/${{ github.repository }} tags: | - type=raw,value=${{ steps.offline_tag.outputs.offline_tag }} - type=raw,value=offline + type=raw,value=${{ steps.lite_tag.outputs.lite_tag }} + type=raw,value=lite - - name: Build and push offline Docker image - uses: docker/build-push-action@v5 + - name: Build and push lite Docker image + uses: docker/build-push-action@v6 with: context: . - file: ./Dockerfile.offline + file: ./Dockerfile.lite platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha - cache-to: type=gha,mode=max + cache-to: type=gha,mode=min - name: Output image details run: | - echo "Offline Docker image built and pushed successfully!" - echo "Image tag: ghcr.io/${{ github.repository }}:${{ steps.offline_tag.outputs.offline_tag }}" + echo "Lite Docker image built and pushed successfully!" + echo "Image tag: ghcr.io/${{ github.repository }}:${{ steps.lite_tag.outputs.lite_tag }}" echo "Base Git tag used: ${{ steps.get_tag.outputs.tag }}" diff --git a/.github/workflows/docker-build-manual.yml b/.github/workflows/docker-build-manual.yml index de459d5a..780a288d 100644 --- a/.github/workflows/docker-build-manual.yml +++ b/.github/workflows/docker-build-manual.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 # Fetch all history for tags @@ -61,7 +61,7 @@ jobs: type=raw,value=${{ steps.get_tag.outputs.tag }} - name: Build and push Docker image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 6c290d59..d0b1a305 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 # Fetch all history for tags @@ -63,7 +63,7 @@ jobs: type=raw,value=latest,enable=${{ steps.check_prerelease.outputs.is_prerelease == 'false' }} - name: Build and push Docker image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile diff --git a/.github/workflows/linting.yaml b/.github/workflows/linting.yaml index ce0cab62..499e4ce5 100644 --- a/.github/workflows/linting.yaml +++ b/.github/workflows/linting.yaml @@ -15,10 +15,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v6 with: python-version: '3.x' diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 14c2bcc5..3539d8f6 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 # Fetch all history for tags # Build frontend WebUI - name: Setup Bun - uses: oven-sh/setup-bun@v1 + uses: oven-sh/setup-bun@v2 with: bun-version: latest @@ -40,7 +40,7 @@ jobs: echo "Frontend files:" ls -lh lightrag/api/webui/ | head -10 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: "3.x" @@ -64,7 +64,7 @@ jobs: python -m build - name: Upload distributions - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: release-dists path: dist/ @@ -81,7 +81,7 @@ jobs: steps: - name: Retrieve release distributions - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: name: release-dists path: dist/ diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index 30643dda..34634c9c 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -13,7 +13,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v9 + - uses: actions/stale@v10 with: days-before-stale: 90 # 90 days days-before-close: 7 # 7 days after marked as stale