remove inherited workflows, keep only docker-publish
This commit is contained in:
parent
3b250fd0d0
commit
90825e823a
8 changed files with 1 additions and 426 deletions
58
.github/workflows/copilot-setup-steps.yml
vendored
58
.github/workflows/copilot-setup-steps.yml
vendored
|
|
@ -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 '<!DOCTYPE html><html><head><title>LightRAG - Copilot Agent</title></head><body><h1>Copilot Agent Mode</h1></body></html>' > 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"
|
|
||||||
84
.github/workflows/docker-build-lite.yml
vendored
84
.github/workflows/docker-build-lite.yml
vendored
|
|
@ -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 }}"
|
|
||||||
80
.github/workflows/docker-build-manual.yml
vendored
80
.github/workflows/docker-build-manual.yml
vendored
|
|
@ -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 }}"
|
|
||||||
30
.github/workflows/linting.yaml
vendored
30
.github/workflows/linting.yaml
vendored
|
|
@ -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
|
|
||||||
92
.github/workflows/pypi-publish.yml
vendored
92
.github/workflows/pypi-publish.yml
vendored
|
|
@ -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/
|
|
||||||
27
.github/workflows/stale.yaml
vendored
27
.github/workflows/stale.yaml
vendored
|
|
@ -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
|
|
||||||
54
.github/workflows/tests.yml
vendored
54
.github/workflows/tests.yml
vendored
|
|
@ -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
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
IMAGE_NAME="ghcr.io/hkuds/lightrag"
|
IMAGE_NAME="ghcr.io/clssck/lightrag"
|
||||||
DOCKERFILE="Dockerfile"
|
DOCKERFILE="Dockerfile"
|
||||||
TAG="latest"
|
TAG="latest"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue