Skip to content

Commit

Permalink
Update aha-prod-ci-cd.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
rf-opssupport authored Sep 16, 2024
1 parent b3867e1 commit 70eeab8
Showing 1 changed file with 30 additions and 76 deletions.
106 changes: 30 additions & 76 deletions .github/workflows/aha-prod-ci-cd.yml
Original file line number Diff line number Diff line change
@@ -1,104 +1,48 @@
# This workflow will trigger pull requests and apply a label based on the
# paths that are modified in the pull request.
#
# To use this workflow, you will need to set up a .github/labeler.yml
# file with configuration. For more information, see:
# https://github.com/actions/labeler

name: AHA-PROD-CI-CD

# Controls when the workflow will run
on:
# Triggers the workflow on push events but only for the develop branch
workflow_dispatch:
inputs:
Tag_name:
description: Tag name of your release(please include "v" if needed)
required: true
# inputs:
# Tag_name:
# description: Tag name of your release(please include "v" if needed)
# required: true

jobs:


Github-ECR-Tag-Check:
Publish-Release:
runs-on: ubuntu-latest

steps:
- name: check tag
uses: mukunku/tag-exists-action@v1.2.0
id: checkTag
- name: New Release Publish
id: new_publish
uses: release-drafter/release-drafter@v5
with:
tag: ${{ github.event.inputs.Tag_name }}

- name: Get release
if: ${{ steps.checkTag.outputs.exists == 'true' }}
id: result_release
uses: cardinalby/git-get-release-action@v1
publish : true
env:
GITHUB_TOKEN: ${{ secrets.PAT_GITHUB }}
with:
tag: ${{ github.event.inputs.Tag_name }}
repo: REAN-Foundation/rean-admin-portal

- name: Configure AWS credentials
if: ${{ steps.checkTag.outputs.exists == 'true' }}
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Get ECR Image Tag
if: ${{ steps.checkTag.outputs.exists == 'true' }}
id: imageidvar
run: |
image_tag+=${{ steps.result_release.outputs.tag_name }} && image_tag+=_ && image_tag+=${{ steps.result_release.outputs.id }}
echo "imagetag_value=$(aws ecr-public describe-image-tags --repository-name rean-admin-portal --region us-east-1 --query "imageTagDetails[?imageTag=='$image_tag'].imageTag" --output text)" >> $GITHUB_OUTPUT
echo $imagetag_value
- name: ECR Image and Github Tag Check
run: |
if [[ ${{ steps.checkTag.outputs.exists }} == 'false' ]]; then exit 1; fi
echo $steps.imageidvar.outputs.imagetag_value
if [[ -z "${{ steps.imageidvar.outputs.imagetag_value }}" ]]; then exit 1; fi
GITHUB_TOKEN: ${{ secrets.PAT_GITHUB }}

outputs:
release_name: ${{ steps.result_release.outputs.tag_name }}
release_id: ${{ steps.result_release.outputs.id }}

release_id: ${{ steps.new_publish.outputs.id }}
release_name: ${{ steps.new_publish.outputs.tag_name }}


Deploy-ECS:
needs: Github-ECR-Tag-Check
environment: aha-prod
needs: Publish-Release
environment: prod
runs-on: ubuntu-latest

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

- name: Get release
id: result_release
uses: cardinalby/git-get-release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.PAT_GITHUB }}
with:
tag: ${{ github.event.inputs.Tag_name }}
repo: REAN-Foundation/rean-admin-portal

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

- name: Copy env file
run: aws s3 cp s3://${{ secrets.ENV_FILE_BUCKET_PATH }}/.env ./.env

- name: Show files
run: |
ls -l
cat ./.env
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

Expand All @@ -114,20 +58,30 @@ jobs:
restore-keys: |
${{ runner.os }}-buildx-
- name: Copy env file
run: aws s3 cp s3://${{ secrets.ENV_FILE_BUCKET_PATH }}/.env ./.env

- name: Copy constant file
run: aws s3 cp s3://${{ secrets.CONSTANT_FILE_BUCKET_PATH }}/constants.ts ./src/lib

- name: Build and push
id: docker_build
uses: docker/build-push-action@v3
with:
context: ./
file: ./Dockerfile
builder: ${{ steps.buildx.outputs.name }}
build-args: ORIGIN=${{ env.ORIGIN }}
build-args: |
ORIGIN=${{ env.ORIGIN }}
ENVIRONMENT=aha-prod
push: true
# tags: ${{ steps.login-ecr.outputs.registry }}/rean-admin-portal:${{ steps.vars.outputs.branch }}_${{ steps.vars.outputs.sha_short }}
tags: public.ecr.aws/i9y2d4u3/rean-admin-portal:${{ needs.Publish-Release.outputs.release_name }}_${{ needs.Publish-Release.outputs.release_id }}
tags: public.ecr.aws/i9y2d4u3/rean-admin-portal-aha-prod:${{ needs.Publish-Release.outputs.release_name }}_${{ needs.Publish-Release.outputs.release_id }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache


- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

- name: Download task definition
run: |
aws ecs describe-task-definition --task-definition ${{ secrets.TASK_DEFINTION_NAME }} \
Expand All @@ -139,7 +93,7 @@ jobs:
with:
task-definition: task-definition.json
container-name: default
image: public.ecr.aws/i9y2d4u3/rean-admin-portal:${{ needs.Github-ECR-Tag-Check.outputs.release_name }}_${{ needs.Github-ECR-Tag-Check.outputs.release_id }}
image: public.ecr.aws/i9y2d4u3/rean-admin-portal-aha-prod:${{ needs.Publish-Release.outputs.release_name }}_${{ needs.Publish-Release.outputs.release_id }}

- name: Deploy Amazon ECS task definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
Expand All @@ -162,5 +116,5 @@ jobs:
with:
url: 'https://reanfoundation.duplocloud.net/subscriptions/${{ secrets.DUPLO_ID }}/UpdateEcsService'
method: 'POST'
data: '{"TaskDefinition":${{ steps.taskdefintionvar.outputs.task_definition_arn }},"Name": "${{ secrets.SERVICE_NAME }}","Replicas":1, "HealthCheckGracePeriodSeconds": 1200,"DnsPrfx": ""}'
data: '{"TaskDefinition":${{ steps.taskdefintionvar.outputs.task_definition_arn }},"Name": "${{ secrets.SERVICE_NAME }}","Replicas":1, "HealthCheckGracePeriodSeconds": 1200, "DnsPrfx": ""}'
bearerToken: ${{ secrets.DUPLOCLOUD_TOKEN }}

0 comments on commit 70eeab8

Please sign in to comment.