LightRAG/.github/workflows/ci.yaml
Taddeus 2255b91210 Adds initial LightRAG app integration with schema and processors
Introduces the LightRAG Retrieval-Augmented Generation framework as an Apolo app, including input/output schemas, types, and processors.
Adds Helm chart value processing, environment and persistence configurations, and output service discovery for deployment.
Includes scripts for generating type schemas and testing support, along with CI and linting setup tailored for the new app.
Provides a documentation loader script to ingest markdown files into LightRAG with flexible referencing modes.

Relates to MLO-469
2025-11-03 13:59:52 +02:00

106 lines
3 KiB
YAML

name: CI
on:
push:
branches: [master]
tags: ["v*"]
pull_request:
branches: [master]
schedule:
- cron: 0 4 * * *
jobs:
test:
name: All checks are passed
uses: ./.github/workflows/test.yaml
secrets: inherit
approve:
name: Approve bot PR
runs-on: ubuntu-latest
if: endsWith(github.actor, '[bot]')
needs: test
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: metadata
id: metadata
if: github.actor == 'dependabot[bot]'
uses: dependabot/fetch-metadata@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Enable auto-merge for bot PRs
run: gh pr merge --auto --squash --delete-branch "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release-processor-image:
name: Release processor image
runs-on: ubuntu-latest
needs: test
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master')
steps:
- name: Checkout commit
uses: actions/checkout@v4
- name: Purge old artifacts
uses: kolpav/purge-artifacts-action@v1
with:
token: ${{ github.token }}
expire-in: 30mins
- name: Login to ghcr.io
uses: docker/login-action@v3.5.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Release development image
run: |
make build-hook-image
- name: Release development image
run: |
export IMAGE_TAG=development
make push-hook-image
- name: Release prod image
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
run: |
export IMAGE_TAG=${GITHUB_REF#refs/tags/v}
make push-hook-image
release-processor-image-pr:
name: Release processor image from PR
runs-on: ubuntu-latest
needs: test
if: github.event_name == 'pull_request'
steps:
- name: Checkout commit
uses: actions/checkout@v4
- name: Purge old artifacts
uses: kolpav/purge-artifacts-action@v1
with:
token: ${{ github.token }}
expire-in: 30mins
- name: Login to ghcr.io
uses: docker/login-action@v3.5.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/neuro-inc/app-lightrag
tags: |
type=ref,event=pr
- name: Build Docker image
run: make build-hook-image
- name: Push release for testing
if: github.actor != 'dependabot[bot]'
run: |
FULL_IMAGE_NAME=${{ steps.meta.outputs.tags }}
export IMAGE_TAG=${FULL_IMAGE_NAME##*:}
make push-hook-image