Build Lite Docker Image #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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@v6 | |
| 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@v4 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata for Docker | |
| id: meta | |
| uses: docker/metadata-action@v6 | |
| 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@v7 | |
| 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 }}" |