@@ -16,33 +16,39 @@ concurrency:
16
16
group : ${{ github.workflow }}-${{ github.ref }}
17
17
cancel-in-progress : true
18
18
19
-
20
19
jobs :
21
20
build :
22
- name : " Build dev image "
21
+ name : " Build and Push Dev Image "
23
22
runs-on : ubuntu-latest
24
23
steps :
25
24
- name : Checkout Repo
26
25
uses : actions/checkout@v4
27
26
- name : Set environment docker tag
28
- run : echo "DOCKER_TAG=${GITHUB_SHA::6}" >> $GITHUB_ENV
27
+ id : set-docker-tag
28
+ run : |
29
+ BRANCH_NAME=$(echo "${GITHUB_REF#refs/heads/}")
30
+ echo "DOCKER_TAG=${BRANCH_NAME}" >> $GITHUB_ENV
29
31
- name : Set environment docker image
30
32
run : echo "DOCKER_IMAGE=${{ env.DOCKER_IMAGE_REPO }}:${{ env.DOCKER_TAG }}" >> $GITHUB_ENV
31
33
- name : Set up Docker Buildx
32
34
uses : docker/setup-buildx-action@v3
33
- - name : Build dev version and export for testing
34
- uses : docker/build-push-action@v5
35
+ - name : Login to Docker Hub
36
+ uses : docker/login-action@v3
37
+ with :
38
+ username : ${{ secrets.DOCKER_HUB_USERNAME }}
39
+ password : ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
40
+ - name : Build and Push Dev Image with Cache
41
+ uses : docker/build-push-action@v6
35
42
with :
36
43
context : .
44
+ push : true
37
45
tags : ${{ env.DOCKER_IMAGE }}
38
46
file : docker/dev/web/Dockerfile
39
- outputs : type=docker,dest=/tmp/template.tar
40
- - name : Upload artifact
41
- uses : actions/upload-artifact@v3
42
- with :
43
- name : template-${{ env.DOCKER_TAG }}
44
- path : /tmp/template.tar
47
+ cache-from : type=registry,ref=${{ env.DOCKER_IMAGE }}
48
+ cache-to : type=inline
49
+
45
50
test :
51
+ name : " Run Tests"
46
52
runs-on : ubuntu-latest
47
53
needs : [ build ]
48
54
env :
@@ -54,22 +60,17 @@ jobs:
54
60
POSTGRES_PORT : 5432
55
61
steps :
56
62
- name : Set environment docker tag
57
- run : echo "DOCKER_TAG=${GITHUB_SHA::6}" >> $GITHUB_ENV
63
+ run : |
64
+ BRANCH_NAME=$(echo "${GITHUB_REF#refs/heads/}")
65
+ echo "DOCKER_TAG=${BRANCH_NAME}" >> $GITHUB_ENV
58
66
- name : Set environment docker image
59
67
run : echo "DOCKER_IMAGE=${{ env.DOCKER_IMAGE_REPO }}:${{ env.DOCKER_TAG }}" >> $GITHUB_ENV
60
- - name : Download artifact
61
- uses : actions/download-artifact@v3
62
- with :
63
- name : template-${{ env.DOCKER_TAG }}
64
- path : /tmp
65
- - name : Load image
66
- run : |
67
- docker load --input /tmp/template.tar
68
- - name : Migration check
68
+ - name : Pull Docker Image
69
+ run : docker pull ${{ env.DOCKER_IMAGE }}
70
+ - name : Migration Check
69
71
run : docker run --entrypoint="" ${{ env.DOCKER_IMAGE }} python manage.py makemigrations --check
70
- - name : Tests
72
+ - name : Run Tests
71
73
run : docker run --entrypoint="" ${{ env.DOCKER_IMAGE }} pytest
72
-
73
74
services :
74
75
postgres :
75
76
image : postgres:15.1-alpine
0 commit comments