1
+ name : Release Containers
2
+
3
+ on :
4
+ push :
5
+ tags : [ 'v*' ]
6
+
7
+
8
+ jobs :
9
+ release-containers :
10
+ name : Build and Push
11
+ runs-on : ubuntu-latest
12
+ steps :
13
+
14
+ - uses : actions/checkout@v2
15
+
16
+ - name : Login to ghcr.io Docker registry
17
+ uses : docker/login-action@v1
18
+ with :
19
+ registry : ghcr.io
20
+ username : ${{ github.repository_owner }}
21
+ password : ${{ secrets.GITHUB_TOKEN }}
22
+
23
+ - name : Compute Docker container image addresses
24
+ run : |
25
+ DOCKER_REPOSITORY="ghcr.io/${GITHUB_REPOSITORY,,}"
26
+ DOCKER_TAG="${GITHUB_REF:11}"
27
+ echo "DOCKER_REPOSITORY=${DOCKER_REPOSITORY}" >> $GITHUB_ENV
28
+ echo "DOCKER_TAG=${DOCKER_TAG}" >> $GITHUB_ENV
29
+ echo "Using: ${DOCKER_REPOSITORY}/*:${DOCKER_TAG}"
30
+
31
+ - name : ' Pull latest existing Docker container image: server'
32
+ run : docker pull "${DOCKER_REPOSITORY}/server:latest" || true
33
+
34
+ - name : ' Pull latest existing Docker container image: client'
35
+ run : docker pull "${DOCKER_REPOSITORY}/client:latest" || true
36
+
37
+ - name : ' Build Docker container image: server'
38
+ run : |
39
+ docker build \
40
+ --cache-from "${DOCKER_REPOSITORY}/server:latest" \
41
+ --tag "${DOCKER_REPOSITORY}/server:latest" \
42
+ --tag "${DOCKER_REPOSITORY}/server:${DOCKER_TAG}" \
43
+ ./src/server
44
+
45
+ - name : Push Docker container image server:latest"
46
+ run : docker push "${DOCKER_REPOSITORY}/server:latest"
47
+
48
+ - name : Push Docker container image server:v*"
49
+ run : docker push "${DOCKER_REPOSITORY}/server:${DOCKER_TAG}"
50
+
51
+ - name : ' Build Docker container image: client'
52
+ run : |
53
+ docker build \
54
+ --cache-from "${DOCKER_REPOSITORY}/client:latest" \
55
+ --tag "${DOCKER_REPOSITORY}/client:latest" \
56
+ --tag "${DOCKER_REPOSITORY}/client:${DOCKER_TAG}" \
57
+ ./src/client
58
+
59
+ - name : Push Docker container image client:latest"
60
+ run : docker push "${DOCKER_REPOSITORY}/client:latest"
61
+
62
+ - name : Push Docker container image client:v*"
63
+ run : docker push "${DOCKER_REPOSITORY}/client:${DOCKER_TAG}"
0 commit comments