-
-
Notifications
You must be signed in to change notification settings - Fork 65
138 lines (115 loc) · 3.3 KB
/
api_pipeline.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Backend Pipeline
on:
push:
branches:
- '*'
- 'main'
paths:
- 'backend/**.py'
- 'backend/requirements*.*'
- 'docker/dockerfiles/Dockerfile.backend*'
- 'docker-compose.yml'
- '.github/workflows/backend_pipeline.yml'
pull_request:
branches:
- 'main'
paths:
- 'backend/**.py'
- 'backend/requirements*.*'
- 'docker/dockerfiles/Dockerfile.backend*'
- 'docker-compose.yml'
- '.github/workflows/backend_pipeline.yml'
jobs:
formatting_with_black:
name: Run Black formatting check
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
cache: 'pip'
- name: Install Black with latest pip
run: |
cat ./backend/requirements-dev.txt | grep black== | cut -d' ' -f1 | xargs pip install
- name: Check formatting with Black
run: |
black --check ./backend
linting_with_ruff:
name: Run Ruff linting check
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
cache: 'pip'
- name: Install Black & Ruff with latest pip
run: |
cat ./backend/requirements-dev.txt | grep ruff== | cut -d' ' -f1 | xargs pip install
- name: Lint files using Ruff
run: |
ruff check ./backend
checking_migrations:
name: Check for migrations
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
cache: 'pip'
- name: Install dependencies
run: |
pip install -r ./backend/requirements-dev.txt
- name: Check for migrations
run: |
set -a
. ./.env.example.dev
python ./backend/manage.py makemigrations --check --dry-run
set +a
tests:
name: Run backend tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16.2
env:
POSTGRES_DB: seismic
POSTGRES_USER: user
POSTGRES_PASSWORD: password
ports:
- 5432:5432
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r ./backend/requirements-dev.txt
- name: Run tests
env:
ENVIRONMENT: "test"
DJANGO_SETTINGS_MODULE: "seismic_site.settings"
DEBUG: "True"
SECRET_KEY: "test_secret"
SITE_URL: "http://localhost"
EMAIL_BACKEND: "django.core.mail.backends.dummy.EmailBackend"
TEST_RUNNER: "tests.runner.PytestTestRunner"
DATABASE_NAME: seismic
DATABASE_USER: user
DATABASE_PASSWORD: password
DATABASE_HOST: postgres
DATABASE_PORT: 5432
run: |
./backend/manage.py test