Skip to content

Create Docker.yml

Create Docker.yml #34

Workflow file for this run

name: Testing django server
on:
push:
pull_request:
branches: [ "master", 'backend' ]
jobs:
build_and_test_backend:
name: Run, build and test backend
env:
SECRET_KEY: ${{ secrets.SECRET_KEY }}
POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_DB: ${{ secrets.POSTGRES_DB }}
POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }}
POSTGRES_PORT: ${{ secrets.POSTGRES_PORT }}
REDIS_CELERY: ${{ secrets.REDIS_CELERY }}
REDIS_CACHE: ${{ secrets.REDIS_CACHE }}
DJANGO_SETTINGS_MODULE: ${{ secrets.DJANGO_SETTINGS_MODULE }}
runs-on: ubuntu-latest
services:
database:
image: postgres:latest
ports:
- 5432:5432
env:
POSTGRES_USER: "${{ secrets.POSTGRES_USER }}"
POSTGRES_PASSWORD: "${{ secrets.POSTGRES_PASSWORD }}"
POSTGRES_DB: "${{ secrets.POSTGRES_DB }}"
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis_cache:
image: redis:latest
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
redis_celery:
image: redis:latest
ports:
- 6380:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.10.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
working-directory: ./backend
- name: Test migrations
run: python manage.py migrate --no-input
working-directory: ./backend
- name: Create test_fixture.json
run: python backend/fixtures/generate_fixtures.py --test
- name: Run Django tests
run: python manage.py test -v2
working-directory: ./backend
flake8:
name: Flake8 Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: 3.10.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Run Flake8
run: |
flake8 . --exclude=*/migrations/*
working-directory: ./backend