1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-19 12:59:36 +02:00

Basic Integration Test for backend

This patch implements a very basic test for commits and pull requests to
be run on GitHub Actions. This does not yet check much, but would have
caught something like the recent syntax error.
This commit is contained in:
Lars Kiesow 2025-04-11 21:10:52 +02:00
parent 23426012af
commit 548d43b563
2 changed files with 77 additions and 0 deletions

16
.github/.docker-compose-database.yml vendored Normal file
View file

@ -0,0 +1,16 @@
services:
db:
image: postgis/postgis:15-3.3
container_name: adventurelog-db
restart: unless-stopped
ports:
- "127.0.0.1:5432:5432"
environment:
POSTGRES_DB: database
POSTGRES_USER: adventure
POSTGRES_PASSWORD: changeme123
volumes:
- postgres_data:/var/lib/postgresql/data/
volumes:
postgres_data:

61
.github/workflows/backend-test.yml vendored Normal file
View file

@ -0,0 +1,61 @@
name: Test Backend
on:
pull_request:
paths:
- 'backend/server/**'
- '.github/workflows/backend-test.yml'
push:
paths:
- 'backend/server/**'
- '.github/workflows/backend-test.yml'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: set up python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
run: |
sudo apt update -q
sudo apt install -y -q \
python3-gdal
- name: start database
run: |
docker compose -f .github/.docker-compose-database.yml up -d
- name: install python libreries
working-directory: backend/server
run: |
pip install -r requirements.txt
- name: run server
working-directory: backend/server
env:
PGHOST: "127.0.0.1"
PGDATABASE: "database"
PGUSER: "adventure"
PGPASSWORD: "changeme123"
SECRET_KEY: "changeme123"
DJANGO_ADMIN_USERNAME: "admin"
DJANGO_ADMIN_PASSWORD: "admin"
DJANGO_ADMIN_EMAIL: "admin@example.com"
PUBLIC_URL: "http://localhost:8000"
CSRF_TRUSTED_ORIGINS: "http://localhost:5173,http://localhost:8000"
DEBUG: "True"
FRONTEND_URL: "http://localhost:5173"
run: |
python manage.py migrate
python manage.py runserver &
- name: wait for backend to boot
run: >
curl -fisS --retry 60 --retry-delay 1 --retry-all-errors
http://localhost:8000/