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 AgentCopilot 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