Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions mocks/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM nionata/casmm-build
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
3 changes: 3 additions & 0 deletions mocks/Dockerfile.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM node:alpine
RUN apk add docker
RUN yarn global add heroku
19 changes: 19 additions & 0 deletions mocks/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: 'Build-Test-Deploy'
description: 'Build, test, and deploy a target image to heroku'
inputs:
image_tag:
description: 'Tag of the github package repo image'
required: true
app_name:
description: 'Target Heroku app name'
required: true
github_token:
description: 'Token for github package repo'
required: true
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.image_tag }}
- ${{ inputs.app_name }}
- ${{ inputs.github_token }}
9 changes: 9 additions & 0 deletions mocks/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/sh

docker build -f Dockerfile.build -t nionata/casmm-build .
docker push nionata/casmm-build

# GitHub Actions doesn't allow you to use public gpr images, for now use dockerhub
# - https://github.community/t/docker-pull-from-public-github-package-registry-fail-with-no-basic-auth-credentials-error/16358/40
# docker build -f Dockerfile.build -t docker.pkg.github.com/stem-c/casmm/build .
# docker push docker.pkg.github.com/stem-c/casmm/build
58 changes: 58 additions & 0 deletions mocks/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/sh

set -e

if [[ "$#" != 3 ]];
then
echo "Expecting 3 arguments, got $#!"
exit 0
fi;

image_tag=$1
app_name=$2
github_token=$3

gpr_base="docker.pkg.github.com/stem-c/casmm"
heroku_base="registry.heroku.com/$app_name"

# Log into gpr
echo "$github_token" | docker login docker.pkg.github.com -u "$GITHUB_ACTOR" --password-stdin

# Name and build server image
gpr_server="$gpr_base/server"
heroku_server="$heroku_base/web"

docker pull "$gpr_server" || true
docker build -t "$gpr_server:$image_tag" -t "$gpr_server:latest" -t "$heroku_server" --cache-from "$gpr_server" .

# Name and build compile image
gpr_compile="$gpr_base/compile"
heroku_compile="$heroku_base/compile"

docker pull "$gpr_compile" || true
docker build -t "$gpr_compile:$image_tag" -t "$gpr_compile:latest" -t "$heroku_compile" --cache-from "$gpr_compile" -f ./compile/Dockerfile ./compile

# Test
docker-compose up -d
ready=false
do
ready=docker-compose logs | grep "strapi ready"
while ("$ready" = false)
cd test
yarn functional
yarn integration
yarn performance

# Push gpr images
docker push "$gpr_server"
docker push "$gpr_compile"

# Login to heroku container registry
heroku container:login

# Push heroku image
docker push "$heroku_server"
docker push "$heroku_compile"

# Deploy app
heroku container:release -a "$app_name" web compile
6 changes: 3 additions & 3 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4467,9 +4467,9 @@ write-file-atomic@^3.0.0:
typedarray-to-buffer "^3.1.5"

ws@^7.2.3:
version "7.3.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd"
integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==
version "7.5.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74"
integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==

xml-name-validator@^3.0.0:
version "3.0.0"
Expand Down