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:
|
||||
release:
|
||||
needs: build-and-start-svc
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
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:
|
||||
docker-image:
|
||||
needs: build-and-start-svc
|
||||
environment:
|
||||
name: release
|
||||
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