diff --git a/.github/workflows/deploy-api.yml b/.github/workflows/deploy-api.yml new file mode 100644 index 00000000..ab078a38 --- /dev/null +++ b/.github/workflows/deploy-api.yml @@ -0,0 +1,49 @@ +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + deploy-alpha: + runs-on: ubuntu-latest + environment: alpha + name: Build and push API docker image for release + if: github.ref == 'refs/heads/main' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.SECRET_KEY }} + aws-region: ap-south-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Build Docker image + id: build + env: + ECR_REGISTRY: ${{ vars.ECR_REGISTRY }} + ECR_REPOSITORY: ${{ vars.ECR_API_REPOSITORY }} + run: | + # Build a docker container and push it to ECR + aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin $ECR_REGISTRY + docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:${GITHUB_SHA::6} -t $ECR_REGISTRY/$ECR_REPOSITORY:latest -f ./apps/api/Dockerfile . + echo "Pushing image to ECR..." + docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest + docker push $ECR_REGISTRY/$ECR_REPOSITORY:${GITHUB_SHA::6} + echo "name=image::$ECR_REGISTRY/$ECR_REPOSITORY:latest" >> $GITHUB_OUTPUT + + - name: Force re-deploy task in service + id: force-redeploy + env: + ECS_CLUSTER: ${{ vars.ECS_CLUSTER }} + ECS_SERVICE: ${{ vars.ECS_API_SERVICE }} + run: | + aws ecs update-service --cluster $ECS_CLUSTER --service $ECS_SERVICE --force-new-deployment diff --git a/.github/workflows/deploy-platform.yml b/.github/workflows/deploy-platform.yml new file mode 100644 index 00000000..86cd96d1 --- /dev/null +++ b/.github/workflows/deploy-platform.yml @@ -0,0 +1,49 @@ +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + deploy-alpha: + runs-on: ubuntu-latest + environment: alpha + name: Build and push Platform docker image for release + if: github.ref == 'refs/heads/main' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.SECRET_KEY }} + aws-region: ap-south-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Build Docker image + id: build + env: + ECR_REGISTRY: ${{ vars.ECR_REGISTRY }} + ECR_REPOSITORY: ${{ vars.ECR_PLATFORM_REPOSITORY }} + run: | + # Build a docker container and push it to ECR + aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin $ECR_REGISTRY + docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:${GITHUB_SHA::6} -t $ECR_REGISTRY/$ECR_REPOSITORY:latest -f ./apps/platform/Dockerfile . + echo "Pushing image to ECR..." + docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest + docker push $ECR_REGISTRY/$ECR_REPOSITORY:${GITHUB_SHA::6} + echo "name=image::$ECR_REGISTRY/$ECR_REPOSITORY:latest" >> $GITHUB_OUTPUT + + - name: Force re-deploy task in service + id: force-redeploy + env: + ECS_CLUSTER: ${{ vars.ECS_CLUSTER }} + ECS_SERVICE: ${{ vars.ECS_PLATFORM_SERVICE }} + run: | + aws ecs update-service --cluster $ECS_CLUSTER --service $ECS_SERVICE --force-new-deployment diff --git a/.github/workflows/deploy-web.yml b/.github/workflows/deploy-web.yml index 9adabe0e..93fca54d 100644 --- a/.github/workflows/deploy-web.yml +++ b/.github/workflows/deploy-web.yml @@ -1,4 +1,5 @@ on: + workflow_dispatch: push: branches: - main @@ -29,7 +30,7 @@ jobs: id: build env: ECR_REGISTRY: ${{ vars.ECR_REGISTRY }} - ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }} + ECR_REPOSITORY: ${{ vars.ECR_WEB_REPOSITORY }} run: | # Build a docker container and push it to ECR aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin $ECR_REGISTRY @@ -43,6 +44,6 @@ jobs: id: force-redeploy env: ECS_CLUSTER: ${{ vars.ECS_CLUSTER }} - ECS_SERVICE: ${{ vars.ECS_SERVICE }} + ECS_SERVICE: ${{ vars.ECS_WEB_SERVICE }} run: | aws ecs update-service --cluster $ECS_CLUSTER --service $ECS_SERVICE --force-new-deployment