diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml deleted file mode 100644 index 6b946ed1..00000000 --- a/.github/workflows/copilot-setup-steps.yml +++ /dev/null @@ -1,58 +0,0 @@ -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@v5 - - - name: Set up Python 3.11 - uses: actions/setup-python@v5 - 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 deleted file mode 100644 index 9cbe6289..00000000 --- a/.github/workflows/docker-build-lite.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Build Lite Docker Image - -on: - workflow_dispatch: - inputs: - _notes_: - description: '⚠️ Create lite Docker images only after non-trivial version releases.' - required: false - type: boolean - default: false - -permissions: - contents: read - packages: write - -jobs: - build-and-push-lite: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Get latest tag - id: get_tag - run: | - LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") - if [ -z "$LATEST_TAG" ]; then - LATEST_TAG="sha-$(git rev-parse --short HEAD)" - echo "No tags found, using commit SHA: $LATEST_TAG" - else - echo "Latest tag found: $LATEST_TAG" - fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - - name: Prepare lite tag - id: lite_tag - run: | - 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: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_tag.outputs.tag }}\"/" lightrag/__init__.py - cat lightrag/__init__.py | grep __version__ - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=raw,value=${{ steps.lite_tag.outputs.lite_tag }} - type=raw,value=lite - - - name: Build and push lite Docker image - uses: docker/build-push-action@v5 - with: - context: . - 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=min - - - name: Output image details - run: | - 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 deleted file mode 100644 index de459d5a..00000000 --- a/.github/workflows/docker-build-manual.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: Build Test Docker Image manually - -on: - workflow_dispatch: - inputs: - _notes_: - description: '⚠️ Please create a new git tag before building the docker image.' - required: false - type: boolean - default: false - -permissions: - contents: read - packages: write - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history for tags - - - name: Get latest tag - id: get_tag - run: | - # Get the latest tag, fallback to commit SHA if no tags exist - LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") - if [ -z "$LATEST_TAG" ]; then - LATEST_TAG="sha-$(git rev-parse --short HEAD)" - echo "No tags found, using commit SHA: $LATEST_TAG" - else - echo "Latest tag found: $LATEST_TAG" - fi - echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT - echo "image_tag=$LATEST_TAG" >> $GITHUB_OUTPUT - - - name: Update version in __init__.py - run: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_tag.outputs.tag }}\"/" lightrag/__init__.py - echo "Updated __init__.py with version ${{ steps.get_tag.outputs.tag }}" - cat lightrag/__init__.py | grep __version__ - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=raw,value=${{ steps.get_tag.outputs.tag }} - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - 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 - - - name: Output image details - run: | - echo "Docker image built and pushed successfully!" - echo "Image tags:" - echo " - ghcr.io/${{ github.repository }}:${{ steps.get_tag.outputs.tag }}" - echo "Latest Git tag used: ${{ steps.get_tag.outputs.tag }}" diff --git a/.github/workflows/linting.yaml b/.github/workflows/linting.yaml deleted file mode 100644 index aa054369..00000000 --- a/.github/workflows/linting.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: Linting and Formatting - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - lint-and-format: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pre-commit - - - name: Run pre-commit - run: pre-commit run --all-files --show-diff-on-failure diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml deleted file mode 100644 index 14c2bcc5..00000000 --- a/.github/workflows/pypi-publish.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: Upload LightRAG-hku Package - -on: - release: - types: [published] - workflow_dispatch: - -permissions: - contents: read - -jobs: - release-build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Fetch all history for tags - - # Build frontend WebUI - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: latest - - - name: Build Frontend WebUI - run: | - cd lightrag_webui - bun install --frozen-lockfile - bun run build - cd .. - - - name: Verify Frontend Build - run: | - if [ ! -f "lightrag/api/webui/index.html" ]; then - echo "❌ Error: Frontend build failed - index.html not found" - exit 1 - fi - echo "✅ Frontend build verified" - echo "Frontend files:" - ls -lh lightrag/api/webui/ | head -10 - - - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - - name: Get version from tag - id: get_version - run: | - TAG=$(git describe --tags --abbrev=0) - echo "Found tag: $TAG" - echo "Extracted version: $TAG" - echo "version=$TAG" >> $GITHUB_OUTPUT - - - name: Update version in __init__.py - run: | - sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.get_version.outputs.version }}\"/" lightrag/__init__.py - echo "Updated __init__.py with version ${{ steps.get_version.outputs.version }}" - cat lightrag/__init__.py | grep __version__ - - - name: Build release distributions - run: | - python -m pip install build - python -m build - - - name: Upload distributions - uses: actions/upload-artifact@v4 - with: - name: release-dists - path: dist/ - - pypi-publish: - runs-on: ubuntu-latest - needs: - - release-build - permissions: - id-token: write - - environment: - name: pypi - - steps: - - name: Retrieve release distributions - uses: actions/download-artifact@v4 - with: - name: release-dists - path: dist/ - - - name: Publish release distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - packages-dir: dist/ diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml deleted file mode 100644 index 30643dda..00000000 --- a/.github/workflows/stale.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# .github/workflows/stale.yml -name: Mark stale issues and pull requests - -on: - schedule: - - cron: '30 22 * * *' # run at 22:30+08 every day - -permissions: - issues: write - pull-requests: write - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9 - with: - days-before-stale: 90 # 90 days - days-before-close: 7 # 7 days after marked as stale - stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' - close-issue-message: 'This issue has been automatically closed because it has not had recent activity. Please open a new issue if you still have this problem.' - stale-pr-message: 'This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.' - close-pr-message: 'This pull request has been automatically closed because it has not had recent activity.' - # If there are specific labels, exempt them from being marked as stale, for example: - exempt-issue-labels: 'enhancement,tracked' - # exempt-pr-labels: 'bug,enhancement,help wanted' - repo-token: ${{ secrets.GITHUB_TOKEN }} # token provided by GitHub diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index e7d00f4a..00000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Offline Unit Tests - -on: - push: - branches: [ main, dev ] - pull_request: - branches: [ main, dev ] - -jobs: - offline-tests: - name: Offline Tests - runs-on: ubuntu-latest - - strategy: - matrix: - python-version: ['3.10', '3.11', '3.12'] - - steps: - - uses: actions/checkout@v4 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Cache pip packages - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt', '**/pyproject.toml') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[api]" - pip install pytest pytest-asyncio - - - name: Run offline tests - run: | - # Run only tests marked as 'offline' (no external dependencies) - # Integration tests requiring databases/APIs are skipped by default - pytest tests/ -m offline -v --tb=short - - - name: Upload test results - if: always() - uses: actions/upload-artifact@v4 - with: - name: test-results-py${{ matrix.python-version }} - path: | - .pytest_cache/ - test-results.xml - retention-days: 7 diff --git a/docker-build-push.sh b/docker-build-push.sh index be51a381..7c0fd596 100755 --- a/docker-build-push.sh +++ b/docker-build-push.sh @@ -2,7 +2,7 @@ set -e # Configuration -IMAGE_NAME="ghcr.io/hkuds/lightrag" +IMAGE_NAME="ghcr.io/clssck/lightrag" DOCKERFILE="Dockerfile" TAG="latest"