Skip to content

Commit b96d14b

Browse files
authored
Merge pull request #258 from CodeForPhilly/github-cicd
Create GitHub CI/CD
2 parents 7bc82fd + d53d309 commit b96d14b

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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

Comments
 (0)