Skip to content

Commit 09b026b

Browse files
authored
Merge pull request #389 from tobiascadee/tobias/automatically-create-order-rounds
Automated OrderRound Creation, move from pyenv to uv, update dev setup
2 parents 94aa133 + 5e5f63c commit 09b026b

File tree

22 files changed

+1890
-1151
lines changed

22 files changed

+1890
-1151
lines changed

.dockerignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
*
22
!*.sh
33
!*.py
4-
!Pipfile
5-
!Pipfile.lock
4+
!pyproject.toml
5+
!uv.lock

.env.example

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# VOKO Development Environment Variables
2+
# Copy this file to .env and modify as needed
3+
4+
# Database configuration
5+
POSTGRES_NAME=postgres
6+
POSTGRES_USER=postgres
7+
POSTGRES_PASSWORD=postgres
8+
POSTGRES_HOST=db
9+
10+
# Django settings
11+
DJANGO_SETTINGS_MODULE=vokou.settings.development
12+
13+
# Auto-created superuser configuration
14+
DJANGO_SUPERUSER_EMAIL=[email protected]
15+
DJANGO_SUPERUSER_FIRST_NAME=Admin
16+
DJANGO_SUPERUSER_LAST_NAME=User
17+
DJANGO_SUPERUSER_PASSWORD=admin123

.github/workflows/ci.yml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
---
2-
name: Deployment
2+
name: CI
33
on:
4-
push:
5-
branches:
6-
- feature/*
7-
- develop
8-
- release/*
9-
- master
4+
pull_request:
5+
types: [opened, synchronize, reopened]
106

117
jobs:
128
tests:
@@ -19,11 +15,10 @@ jobs:
1915
uses: actions/setup-python@v3
2016
with:
2117
python-version: '3.8'
22-
- name: Install pipenv
23-
run: python -m pip install --upgrade pipenv wheel
18+
- name: Install uv
19+
run: python -m pip install --upgrade uv
2420
- name: Install dependencies
25-
run: pipenv install --system --dev
21+
run: uv sync --dev
2622
- name: Run tests
2723
working-directory: webapp
28-
run: |
29-
./runtests.sh
24+
run: uv run python manage.py test --settings=vokou.settings.testing

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.8

Dockerfile

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,31 @@ ENV LANG C.UTF-8
77
ENV LC_ALL C.UTF-8
88
ENV PYTHONDONTWRITEBYTECODE 1
99
ENV PYTHONFAULTHANDLER 1
10+
ENV TZ="Europe/Amsterdam"
1011

11-
# Install pipenv
12-
RUN pip install pipenv
12+
# Install system dependencies including PostgreSQL client and timezone data
13+
RUN apt-get update && apt-get install -y \
14+
postgresql-client \
15+
tzdata \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
# Configure timezone
19+
RUN ln -snf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime && echo Europe/Amsterdam > /etc/timezone
20+
21+
# Install uv
22+
RUN pip install uv
1323

1424
# Set work directory
1525
WORKDIR /code
1626

1727
# Copy dependencies & files
18-
COPY ./Pipfile /code/
28+
COPY ./pyproject.toml /code/
1929

2030
ARG CACHEBUST=1
2131
# Recreate lock file
22-
RUN pipenv lock
32+
RUN uv lock
2333
# Install dependencies
24-
RUN pipenv install --dev
34+
RUN uv sync --dev
2535

2636
# Install application into container
2737
COPY . .

Makefile

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
.PHONY: help setup build up down restart logs logs-web logs-db shell db-shell clean test migrate superuser runserver validate reset
2+
3+
# Default target
4+
help:
5+
@echo "VOKO Development Environment"
6+
@echo "============================"
7+
@echo "Available commands:"
8+
@echo " setup - Complete setup of development environment (recommended)"
9+
@echo " build - Build Docker images"
10+
@echo " up - Start all services"
11+
@echo " down - Stop all services"
12+
@echo " restart - Restart all services"
13+
@echo " logs - View all logs"
14+
@echo " logs-web - View web application logs"
15+
@echo " logs-db - View database logs"
16+
@echo " shell - Access web container shell"
17+
@echo " db-shell - Access database shell"
18+
@echo " clean - Clean up containers and volumes"
19+
@echo " test - Run tests"
20+
@echo " migrate - Run database migrations"
21+
@echo " superuser - Create Django superuser"
22+
@echo " validate - Validate setup is working correctly"
23+
@echo " reset - Reset database (WARNING: deletes all data)"
24+
25+
# Complete setup - simplified one-command setup
26+
setup:
27+
@echo "Starting VOKO development environment..."
28+
@echo "This will build and start all services with automatic setup."
29+
docker-compose up --build
30+
31+
# Build Docker images
32+
build:
33+
docker-compose build
34+
35+
# Start services
36+
up:
37+
docker-compose up -d
38+
39+
# Stop services
40+
down:
41+
docker-compose down
42+
43+
# Restart services
44+
restart:
45+
docker-compose restart
46+
47+
# View logs
48+
logs:
49+
docker-compose logs -f
50+
51+
# View web logs
52+
logs-web:
53+
docker-compose logs -f web
54+
55+
# View database logs
56+
logs-db:
57+
docker-compose logs -f db
58+
59+
# Access web container shell
60+
shell:
61+
docker exec -it voko_web bash
62+
63+
# Access database shell
64+
db-shell:
65+
docker exec -it voko_db psql -U postgres
66+
67+
# Clean up
68+
clean:
69+
docker-compose down -v
70+
docker system prune -f
71+
72+
# Run tests
73+
test:
74+
docker exec voko_web uv run python manage.py test --settings=vokou.settings.testing
75+
76+
# Run migrations
77+
migrate:
78+
docker exec voko_web uv run python manage.py makemigrations --settings=vokou.settings.development
79+
docker exec voko_web uv run python manage.py migrate --settings=vokou.settings.development
80+
81+
# Create superuser
82+
superuser:
83+
docker exec -it voko_web uv run python manage.py createsuperuser --noinput --settings=vokou.settings.development
84+
85+
# Run crons
86+
crons:
87+
docker exec voko_web uv run python manage.py runcrons --settings=vokou.settings.development
88+
89+
# Start development server (if not using docker-compose)
90+
runserver:
91+
docker exec voko_web uv run python manage.py runserver 0.0.0.0:8000 --settings=vokou.settings.development
92+
93+
# Reset database (WARNING: deletes all data)
94+
reset:
95+
@echo "WARNING: This will delete all data!"
96+
@read -p "Are you sure? [y/N] " -n 1 -r; \
97+
echo; \
98+
if [[ $$REPLY =~ ^[Yy]$$ ]]; then \
99+
docker-compose down -v; \
100+
docker-compose up --build; \
101+
else \
102+
echo "Reset cancelled."; \
103+
fi
104+
105+
# Flush sqlite database (if using sqlite)
106+
flush:
107+
@echo "Flushing SQLite database..."
108+
uv run python webapp/manage.py flush --no-input --settings=vokou.settings.development
109+
110+
flush-docker:
111+
@echo "Flushing SQLite database in Docker..."
112+
docker exec voko_web uv run python manage.py flush --no-input --settings=vokou.settings.development
113+
114+
# start webapp
115+
start-webapp:
116+
@echo "Starting web application..."
117+
uv run python webapp/manage.py runserver --settings=vokou.settings.development

Pipfile

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)