fix: test workflow #46
This file contains 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: Deploy to AWS | |
on: | |
push: | |
branches: ['Abel/Deploy'] # Update to push to 'main' when complete | |
concurrency: | |
group: deploy-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
AWS_REGION: ${{ secrets.AWS_REGION }} # Use GitHub secret for AWS region | |
ECR_REPOSITORY: app # Set this to your Amazon ECR repository name | |
ECS_SERVICE: SkyDevOps # Set this to your Amazon ECS service name | |
ECS_CLUSTER: Sky # Set this to your Amazon ECS cluster name | |
permissions: | |
contents: read | |
jobs: | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@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: ${{ secrets.AWS_REGION }} | |
- name: Login to AWS ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v2 | |
- name: Build and push image to AWS ECR | |
id: build-image | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
IMAGE_TAG: latest | |
run: | | |
# Use Docker Buildx to build the image for x86_64 | |
docker buildx build --platform linux/amd64 --push -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . | |
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT | |
- name: Fetch Latest Task Definition ARN | |
id: fetch-task-def-arn | |
run: | | |
# Fetch the latest task definition for the service | |
TASK_DEFINITION_ARN=$(aws ecs describe-services \ | |
--cluster ${{ env.ECS_CLUSTER }} \ | |
--services ${{ env.ECS_SERVICE }} \ | |
--query 'services[0].taskDefinition' \ | |
--output text) | |
echo "TASK_DEFINITION_ARN=$TASK_DEFINITION_ARN" >> $GITHUB_ENV | |
- name: Deploy to AWS ECS | |
run: | | |
# Use the latest task definition revision for the deployment | |
aws ecs update-service --cluster ${{ env.ECS_CLUSTER }} --service ${{ env.ECS_SERVICE }} --task-definition ${{ env.TASK_DEFINITION_ARN }} --force-new-deployment |