chore: Update Terraform variables and modify deployment data handling #91
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "CI/CD: ECR Build & Ansible Deploy" | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| env: | |
| AWS_REGION: ${{ secrets.AWS_REGION }} | |
| ECR_REPO_URL: ${{secrets.ECR_REPO_URL}} | |
| AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} | |
| CLIENT_ID: ${{ secrets.CLIENT_ID }} | |
| CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} | |
| REDIRECT_URI: ${{ secrets.REDIRECT_URI }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }} | |
| DATABASE_NAME: ${{ secrets.DATABASE_NAME }} | |
| JWT_ALGORITHM: ${{ secrets.JWT_ALGORITHM }} | |
| JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }} | |
| EXPIRATION_TIME: ${{ secrets.EXPIRATION_TIME }} | |
| DIR_BASE: ${{ secrets.DIR_BASE }} | |
| IMAGE_TAG: latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v2 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: ${{ env.AWS_REGION }} | |
| # -- DOCKER BUILD AND PUSH TO ECR -- | |
| - name: Login to Amazon ECR | |
| run: | | |
| aws ecr get-login-password --region $AWS_REGION \ | |
| | docker login --username AWS --password-stdin $ECR_REPO_URL | |
| - name: Build and Push Docker Image | |
| run: | | |
| docker build \ | |
| --build-arg CLIENT_ID=$CLIENT_ID \ | |
| --build-arg CLIENT_SECRET=$CLIENT_SECRET \ | |
| --build-arg REDIRECT_URI=$REDIRECT_URI \ | |
| --build-arg AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ | |
| --build-arg AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ | |
| --build-arg AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID \ | |
| --build-arg AWS_DEFAULT_REGION=$AWS_REGION \ | |
| --build-arg CONNECTION_STRING=$CONNECTION_STRING \ | |
| --build-arg DATABASE_NAME=$DATABASE_NAME \ | |
| --build-arg JWT_ALGORITHM=$JWT_ALGORITHM \ | |
| --build-arg JWT_SECRET_KEY=$JWT_SECRET_KEY \ | |
| --build-arg EXPIRATION_TIME=$EXPIRATION_TIME \ | |
| --build-arg DIR_BASE=$DIR_BASE \ | |
| -t easy-deploy-backend Backend/app | |
| docker tag easy-deploy-backend $ECR_REPO_URL:latest | |
| docker push $ECR_REPO_URL:latest | |
| - name: Update ECS Service | |
| run: | | |
| aws ecs update-service --cluster ecs-cluster-easy-deploy --service ecs-service-easy-deploy --force-new-deployment |