forked from apluslms/gitmanager
-
Notifications
You must be signed in to change notification settings - Fork 0
37 lines (37 loc) · 1.56 KB
/
tests.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
name: tests
on: [push]
jobs:
docker-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: imgcache
with:
path: .docker-img.tar
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements.txt') }}
# we stop here if the docker image was found in a cache
- uses: actions/cache@v2
with:
path: .docker-cache
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements.txt') }}
if: steps.imgcache.outputs.cache-hit != 'true'
- uses: docker/[email protected]
if: steps.imgcache.outputs.cache-hit != 'true'
- run: docker buildx build -t testimg --output type=docker,dest=.docker-img.tar --cache-to type=local,dest=.docker-cache2,mode=max --cache-from type=local,src=.docker-cache -f .github/workflows/Dockerfile .
if: steps.imgcache.outputs.cache-hit != 'true'
- run: rm -rf .docker-cache | true
if: steps.imgcache.outputs.cache-hit != 'true'
- run: mv .docker-cache2 .docker-cache
if: steps.imgcache.outputs.cache-hit != 'true'
unit-tests:
runs-on: ubuntu-latest
needs: docker-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: .docker-img.tar
key: v2-${{ hashFiles('.github/workflows/Dockerfile', 'requirements.txt') }}
- run: docker load -i .docker-img.tar
- run: docker run -v ${{ github.workspace }}:${{ github.workspace }} -w ${{ github.workspace }} testimg python3 manage.py test