1
- name : Unit tests
1
+ name : Unit tests for Django
2
2
3
3
on :
4
4
push :
5
5
branches :
6
6
- main
7
+ paths-ignore :
8
+ - ' **.md'
7
9
pull_request :
8
10
branches :
9
11
- main
12
+ paths-ignore :
13
+ - ' **.md'
10
14
11
15
permissions :
12
- contents : read
13
- checks : write
16
+ contents : read # Только чтение содержимого репозитория
17
+ checks : write # Необходимо для отправки результатов тестов в GitHub Checks
14
18
15
19
jobs :
16
20
test :
29
33
run : |
30
34
python -m pip install --upgrade pip
31
35
if [ -f "requirements.txt" ]; then
36
+ echo "Installing dependencies from requirements.txt..."
32
37
pip install -r requirements.txt || { echo "Dependency installation failed!"; exit 1; }
33
38
else
34
39
echo "requirements.txt not found! Skipping dependency installation."
40
+ exit 1
41
+ fi
42
+
43
+ - name : Validate installed packages
44
+ run : |
45
+ echo "Validating installed packages..."
46
+ pip list
47
+ if ! pip show django; then
48
+ echo "Django is not installed!"
49
+ exit 1
50
+ fi
51
+
52
+ - name : Check Django version
53
+ run : |
54
+ echo "Checking Django version..."
55
+ INSTALLED_VERSION=$(pip show django | grep Version | cut -d ' ' -f 2)
56
+ REQUIRED_VERSION="4.2.19" # Требуемая версия Django
57
+ if [ "$INSTALLED_VERSION" != "$REQUIRED_VERSION" ]; then
58
+ echo "Incorrect Django version installed: $INSTALLED_VERSION. Required: $REQUIRED_VERSION"
59
+ exit 1
60
+ fi
61
+
62
+ - name : Run database migrations (if needed)
63
+ run : |
64
+ if command -v python manage.py &>/dev/null; then
65
+ echo "Running database migrations..."
66
+ python manage.py migrate --noinput
67
+ else
68
+ echo "manage.py not found. Skipping migrations."
35
69
fi
36
70
37
71
- name : Run unit tests
@@ -43,10 +77,10 @@ jobs:
43
77
if : steps.run-tests.outcome == 'failure'
44
78
run : |
45
79
echo "Tests failed! Review the logs for details."
46
- exit 1
80
+ exit 1 # Завершить пайплайн с ошибкой, если тесты не прошли
47
81
48
82
- name : Upload test results
49
- if : always()
83
+ if : always() # Выполнить этот шаг всегда, независимо от успеха предыдущих шагов
50
84
uses : actions/upload-artifact@v4
51
85
with :
52
86
name : test-results
0 commit comments