mirror of
https://github.com/getzep/graphiti.git
synced 2025-06-27 02:00:02 +00:00
chore: Add build and start CI workflow (#164)
* chore: Add build and start CI workflow * chore: Fix docker-compose command * chore: Fix healthcheck port * fix: test docker compose setup * chore: Simulate container start error * chore: Always log service logs * revert dev version changes, and simulate error in the healthcheck * chore: Log docker logs only on failure, revert simulated error * chore: Make release workflows depend on build and start workflow
This commit is contained in:
parent
9d9150ac5f
commit
50f9418a30
47
.github/workflows/build-and-start-svc.yml
vendored
Normal file
47
.github/workflows/build-and-start-svc.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
name: Build and Start Graphiti Service
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main" ]
|
||||||
|
push:
|
||||||
|
tags: [ 'v*.*.*' ]
|
||||||
|
jobs:
|
||||||
|
build-and-start:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
id-token: write
|
||||||
|
env:
|
||||||
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||||
|
NEO4J_USER: neo4j
|
||||||
|
NEO4J_PASSWORD: testpassword
|
||||||
|
NEO4J_PORT: 7687
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Depot CLI
|
||||||
|
uses: depot/setup-action@v1
|
||||||
|
|
||||||
|
- name: Build Graphiti service image with Depot
|
||||||
|
uses: depot/build-push-action@v1
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: false
|
||||||
|
load: true
|
||||||
|
tags: graphiti-service:${{ github.sha }}
|
||||||
|
|
||||||
|
- name: Run Docker Compose
|
||||||
|
run: docker compose -f docker-compose.test.yml up -d --wait
|
||||||
|
|
||||||
|
- name: Check service logs
|
||||||
|
if: failure()
|
||||||
|
run: |
|
||||||
|
echo "Graphiti service logs:"
|
||||||
|
docker compose -f docker-compose.test.yml logs graph
|
||||||
|
echo "Neo4j logs:"
|
||||||
|
docker compose -f docker-compose.test.yml logs neo4j
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
if: always()
|
||||||
|
run: docker compose -f docker-compose.test.yml down
|
1
.github/workflows/release-graphiti-core.yml
vendored
1
.github/workflows/release-graphiti-core.yml
vendored
@ -9,6 +9,7 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
needs: build-and-start-svc
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
id-token: write
|
id-token: write
|
||||||
|
1
.github/workflows/release-service-image.yml
vendored
1
.github/workflows/release-service-image.yml
vendored
@ -11,6 +11,7 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
docker-image:
|
docker-image:
|
||||||
|
needs: build-and-start-svc
|
||||||
environment:
|
environment:
|
||||||
name: release
|
name: release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
41
docker-compose.test.yml
Normal file
41
docker-compose.test.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
graph:
|
||||||
|
image: graphiti-service:${GITHUB_SHA}
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD",
|
||||||
|
"python",
|
||||||
|
"-c",
|
||||||
|
"import urllib.request; urllib.request.urlopen('http://localhost:8000/healthcheck')",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
depends_on:
|
||||||
|
neo4j:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||||
|
- NEO4J_URI=bolt://neo4j:${NEO4J_PORT}
|
||||||
|
- NEO4J_USER=${NEO4J_USER}
|
||||||
|
- NEO4J_PASSWORD=${NEO4J_PASSWORD}
|
||||||
|
- PORT=8000
|
||||||
|
|
||||||
|
neo4j:
|
||||||
|
image: neo4j:5.22.0
|
||||||
|
ports:
|
||||||
|
- "7474:7474"
|
||||||
|
- "${NEO4J_PORT}:${NEO4J_PORT}"
|
||||||
|
healthcheck:
|
||||||
|
test: wget "http://localhost:${NEO4J_PORT}" || exit 1
|
||||||
|
interval: 1s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 20
|
||||||
|
start_period: 3s
|
||||||
|
environment:
|
||||||
|
- NEO4J_AUTH=${NEO4J_USER}/${NEO4J_PASSWORD}
|
Loading…
x
Reference in New Issue
Block a user