102 lines
2.6 KiB
YAML
102 lines
2.6 KiB
YAML
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@v7
|
|
with:
|
|
fetch-depth: 0 # Fetch all history for tags
|
|
|
|
# Build frontend WebUI
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v2
|
|
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@v6
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
- name: Resolve release version
|
|
id: get_version
|
|
run: |
|
|
if [ "${{ github.event_name }}" = "release" ] && [ -n "${{ github.event.release.tag_name }}" ]; then
|
|
TAG="${{ github.event.release.tag_name }}"
|
|
else
|
|
TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
|
fi
|
|
if [ -z "$TAG" ]; then
|
|
echo "No git tag found for release build"
|
|
exit 1
|
|
fi
|
|
PACKAGE_VERSION="${TAG#v}"
|
|
echo "Found tag: $TAG"
|
|
echo "Package version: $PACKAGE_VERSION"
|
|
echo "version=$TAG" >> $GITHUB_OUTPUT
|
|
echo "package_version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT
|
|
|
|
- name: Update version definitions
|
|
run: |
|
|
python scripts/release/set_version.py --core-version "${{ steps.get_version.outputs.package_version }}"
|
|
grep '__version__ = ' lightrag/_version.py
|
|
|
|
- name: Build release distributions
|
|
run: |
|
|
python -m pip install build
|
|
python -m build
|
|
|
|
- name: Upload distributions
|
|
uses: actions/upload-artifact@v7
|
|
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@v8
|
|
with:
|
|
name: release-dists
|
|
path: dist/
|
|
|
|
- name: Publish release distributions to PyPI
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
with:
|
|
packages-dir: dist/
|