Skip to content

Commit

Permalink
Test docker upload
Browse files Browse the repository at this point in the history
  • Loading branch information
kurtisassad committed Sep 12, 2024
1 parent f630bff commit baaa4b1
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions .github/workflows/CD.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Build Docker Image

on:
push:
branches:
- staging
- frick
- frack

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Check if Docker image exists
id: check-image
run: |
IMAGE_EXISTS=$(aws ecr describe-images \
--repository-name commonwealth \
--image-ids imageTag=$GITHUB_SHA \
--query 'imageDetails[0].imageTags' \
--output text 2>/dev/null || echo "false")
if [[ "$IMAGE_EXISTS" == "false" ]]; then
echo "Image does not exist. Building and uploading"
echo "IMAGE_EXISTS=false" >> $GITHUB_ENV
else
echo "Image exists. Will skip build and upload"
echo "IMAGE_EXISTS=true" >> $GITHUB_ENV
fi
- name: Build, tag, and push docker image to Amazon ECR
if: env.IMAGE_EXISTS == 'false'
env:
REGISTRY: ${{ steps.login-ecr.outputs.registry }}
REPOSITORY: commonwealth
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG .
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG
deploy:
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Set Heroku app name based on branch
id: set-heroku-app-name
run: |
BRANCH_NAME=${GITHUB_REF##*/}
case $BRANCH_NAME in
frick)
APP_NAME="commonwealth-frick"
;;
frack)
APP_NAME="commonwealth-frack"
;;
staging)
APP_NAME="commonwealth-beta"
;;
demo)
APP_NAME="commonwealth-demo"
;;
*)
echo "Branch $BRANCH_NAME is not configured for deployment."
exit 1
;;
esac
echo "HEROKU_APP_NAME=$APP_NAME" >> $GITHUB_ENV
- uses: actions/checkout@v2
- uses: akhileshns/[email protected]
with:
heroku_api_key: ${{secrets.HEROKU_API_TOKEN}}
heroku_app_name: ${{ env.HEROKU_APP_NAME }}
heroku_email: ${{secrets.HEROKU_EMAIL}}
dontuseforce: false
dontautocreate: true

0 comments on commit baaa4b1

Please sign in to comment.