Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
build-image: ${{ steps.build-meta.outputs.tags }}
prisma-build-image: ${{ steps.build-prisma-meta.outputs.tags }}
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down Expand Up @@ -47,6 +48,34 @@ jobs:
cache-from: type=gha
cache-to: type=gha

test-migrations:
runs-on: ubuntu-latest
needs:
- build
env:
COMPOSE_FILE: docker-compose.yml:docker-compose.ci.yml
DOCKER_APP_IMAGE: ${{ needs.build.outputs.build-image }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Compose
uses: docker/setup-compose-action@v1

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Test migrations
run: |
cp env.example .env
docker compose pull --quiet db prisma
docker compose up -d --wait db
docker compose run --rm prisma migrate deploy

test:
runs-on: ubuntu-latest
needs:
Expand Down Expand Up @@ -107,6 +136,7 @@ jobs:
needs:
- build
- test
- test-migrations
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
18 changes: 15 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@ FROM python:3.13-slim AS reqs

WORKDIR /app

RUN apt-get update -y && apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/
RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
nodejs \
npm \
openssl && \
rm -rf /var/lib/apt/lists/

COPY pyproject.toml pyproject.toml

Expand All @@ -14,14 +19,21 @@ ENV PATH=/venv/bin:$PATH
RUN python -m pip install -U setuptools
RUN pip install -q .

FROM reqs AS prisma
COPY package*.json ./
RUN npm install

FROM reqs AS app
COPY willa willa
COPY pyproject.toml pyproject.toml
RUN pip install -e .
COPY README.rst README.rst
COPY CHANGELOG.rst CHANGELOG.rst
COPY prisma prisma
COPY public public
COPY chainlit.md chainlit.md
COPY .chainlit .chainlit
RUN pip install -e .
COPY --from=prisma /app/node_modules node_modules

ENV VIRTUAL_ENV=/venv
CMD ["chainlit", "run", "/app/willa/web/app.py", "-h", "--host", "0.0.0.0"]
Expand Down
15 changes: 0 additions & 15 deletions Dockerfile.prisma

This file was deleted.

20 changes: 18 additions & 2 deletions docker-compose.ci.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
services:
db: !reset
app:
build: !reset
image: ${DOCKER_APP_IMAGE}
depends_on: !reset
ports: !reset
volumes: !reset
environment:
CHAT_BACKEND: ollama
DEFAULT_STORAGE_DIR: /tmp
EMBED_BACKEND: ollama

db:
ports: !reset
volumes: !override
- postgres:/var/lib/postgresql/data

prisma:
image: ${DOCKER_APP_IMAGE}
build: !reset
volumes: !reset
ports: !reset
profiles: !reset

ollama: !reset
prisma: !reset

localstack: !reset

volumes:
postgres:
12 changes: 7 additions & 5 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ services:
restart: always
environment: &dbconfig
POSTGRES_DB: ${POSTGRES_DB:-willa}
POSTGRES_USER: ${POSTGRES_USER:-root}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-root}
POSTGRES_USER: ${POSTGRES_USER:-willa}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-willa}
DATABASE_URL: ${DATABASE_URL:-postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_DB}}
ports:
- 5432:5432
Expand Down Expand Up @@ -52,16 +52,18 @@ services:
prisma:
profiles:
- prisma
build:
context: .
dockerfile: Dockerfile.prisma
build: .
entrypoint: ['npx', 'prisma']
command: ['studio']
restart: always
environment: *dbconfig
ports:
- 5555:5555
depends_on:
db:
condition: service_healthy
volumes:
- ./prisma:/app/prisma:rw

localstack:
profiles:
Expand Down
4 changes: 2 additions & 2 deletions env.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ OLLAMA_URL=http://ollama:11434
CHAT_BACKEND=ollama
CHAT_MODEL=gemma3n:e4b
CHAT_TEMPERATURE=0.7
POSTGRES_USER=root
POSTGRES_PASSWORD=root
POSTGRES_USER=willa
POSTGRES_PASSWORD=willa
POSTGRES_DB=willa
POSTGRES_PORT=5432
CHAINLIT_AUTH_SECRET="output of chainlit create secret"
Expand Down
File renamed without changes.
Loading