name: Build Test on: push: branches: [main, develop] workflow_run: workflows: ["Deploy Development", "Deploy Production"] types: [completed] jobs: pytest-backend: if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest steps: - name: Run backend pytest suite in deployed container run: | EVENT_NAME="${{ github.event_name }}" REF_NAME="${{ github.ref_name }}" RUN_WORKFLOW="${{ github.event.workflow_run.name }}" APP_DIR="/home/lars/docker/bodytrack" COMPOSE_FILE="docker-compose.yml" if [ "$EVENT_NAME" = "workflow_run" ]; then if [ "$RUN_WORKFLOW" = "Deploy Development" ]; then APP_DIR="/home/lars/docker/bodytrack-dev" COMPOSE_FILE="docker-compose.dev-env.yml" fi elif [ "$REF_NAME" = "develop" ]; then APP_DIR="/home/lars/docker/bodytrack-dev" COMPOSE_FILE="docker-compose.dev-env.yml" fi cd "$APP_DIR" docker compose -f "$COMPOSE_FILE" exec -T backend sh -lc " pip install -r /app/requirements-dev.txt && cd /app && python -m pytest tests -m 'not slow' -ra -vv --tb=short " lint-backend: if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest steps: - name: Check backend syntax on deployed app run: | EVENT_NAME="${{ github.event_name }}" REF_NAME="${{ github.ref_name }}" RUN_WORKFLOW="${{ github.event.workflow_run.name }}" APP_DIR="/home/lars/docker/bodytrack" if [ "$EVENT_NAME" = "workflow_run" ]; then if [ "$RUN_WORKFLOW" = "Deploy Development" ]; then APP_DIR="/home/lars/docker/bodytrack-dev" fi elif [ "$REF_NAME" = "develop" ]; then APP_DIR="/home/lars/docker/bodytrack-dev" fi python3 -m py_compile "$APP_DIR/backend/main.py" echo "✓ Backend syntax OK" build-frontend: if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest steps: - name: Build frontend on deployed app run: | EVENT_NAME="${{ github.event_name }}" REF_NAME="${{ github.ref_name }}" RUN_WORKFLOW="${{ github.event.workflow_run.name }}" APP_DIR="/home/lars/docker/bodytrack" if [ "$EVENT_NAME" = "workflow_run" ]; then if [ "$RUN_WORKFLOW" = "Deploy Development" ]; then APP_DIR="/home/lars/docker/bodytrack-dev" fi elif [ "$REF_NAME" = "develop" ]; then APP_DIR="/home/lars/docker/bodytrack-dev" fi cd "$APP_DIR/frontend" npm install npm run build echo "✓ Frontend build OK"