-
Notifications
You must be signed in to change notification settings - Fork 2
137 lines (130 loc) · 3.92 KB
/
ci.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
name: Continuous Integration
on:
push:
branches:
- master
- next_release
pull_request:
env:
OWNER: eresearchqut
jobs:
build_images:
name: Build images
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Make images dir
run: mkdir /tmp/build_images
- name: Build django image
run: docker build -t $OWNER/runserver:$GITHUB_SHA . -f docker/dev/Dockerfile
- name: Save django image to file
run: docker save $OWNER/runserver:$GITHUB_SHA -o /tmp/build_images/django_image.tar.gz
- name: Upload images
uses: actions/upload-artifact@v4
with:
name: build_images
path: /tmp/build_images
lint:
name: Lint
runs-on: ubuntu-latest
needs: build_images
steps:
- uses: actions/checkout@v4
- run: |
touch .env_local
echo "TRRF_IMAGE_NAME=$OWNER/runserver:$GITHUB_SHA" >> $GITHUB_ENV
- name: Download images
uses: actions/download-artifact@v4
with:
name: build_images
path: /tmp/build_images
- name: Ruff linting
run: ./scripts/lint.sh
migration_check:
name: Check migrations
runs-on: ubuntu-latest
needs: build_images
steps:
- uses: actions/checkout@v4
- run: |
touch .env_local
echo "TRRF_IMAGE_NAME=$OWNER/runserver:$GITHUB_SHA" >> $GITHUB_ENV
- name: Download images
uses: actions/download-artifact@v4
with:
name: build_images
path: /tmp/build_images
- name: Load django image
run: docker load -i /tmp/build_images/django_image.tar.gz
- name: Django migrations check
run: ./scripts/check-migrations.sh
unit_tests:
name: Unit tests
runs-on: ubuntu-latest
needs: build_images
steps:
- uses: actions/checkout@v4
- run: |
touch .env_local
echo "TRRF_IMAGE_NAME=$OWNER/runserver:$GITHUB_SHA" >> $GITHUB_ENV
- name: Download images
uses: actions/download-artifact@v4
with:
name: build_images
path: /tmp/build_images
- name: Load django image
run: docker load -i /tmp/build_images/django_image.tar.gz
- name: Unit tests
run: ./scripts/unit-tests-coverage.sh
- name: Upload test coverage
uses: actions/upload-artifact@v4
with:
name: Unittest coverage
path: data/test/unittest_coverage_report
integration_tests:
name: Integration tests
runs-on: ubuntu-latest
needs: build_images
steps:
- uses: actions/checkout@v4
- run: |
touch .env_local
echo "TRRF_IMAGE_NAME=$OWNER/runserver:$GITHUB_SHA" >> $GITHUB_ENV
- name: Download images
uses: actions/download-artifact@v4
with:
name: build_images
path: /tmp/build_images
- name: Load django image
run: docker load -i /tmp/build_images/django_image.tar.gz
- name: Create log dir
run: mkdir -p data/aloe/dev
- name: Integration tests
run: ./scripts/end2end-tests.sh
- name: Tar test output
if: ${{ always() }}
run: tar -cvf aloe-results.tar data/aloe/dev
- name: Upload test output
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: Aloe output
path: aloe-results.tar
system_checks:
name: System checks
runs-on: ubuntu-latest
needs: build_images
steps:
- uses: actions/checkout@v4
- run: |
touch .env_local
echo "TRRF_IMAGE_NAME=$OWNER/runserver:$GITHUB_SHA" >> $GITHUB_ENV
- name: Download images
uses: actions/download-artifact@v4
with:
name: build_images
path: /tmp/build_images
- name: Load django image
run: docker load -i /tmp/build_images/django_image.tar.gz
- name: Django checks
run: ./scripts/django-checks.sh