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@v6 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/