FE CI/CD
user_0659028
yaml
20 days ago
2.4 kB
4
Indexable
name: Build, Push Docker Image to ECR and Update ECS Service on: push: tags: - '*' jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Set up AWS CLI 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: Log in to Amazon ECR run: | aws ecr get-login-password --region ${{ secrets.AWS_REGION }} | \ docker login --username AWS --password-stdin ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com - name: Build Docker image run: docker build --rm --no-cache -f Dockerfile -t ${{ secrets.ECR_REPOSITORY }} . - name: Tag Docker image run: | docker tag ${{ secrets.ECR_REPOSITORY }}:latest \ ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/${{ secrets.ECR_REPOSITORY }}:latest - name: Push Docker image to ECR run: | docker push ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/${{ secrets.ECR_REPOSITORY }}:latest - name: Get current desired count of ECS service id: get_desired_count run: | CURRENT_DESIRED_COUNT=$(aws ecs describe-services \ --cluster ${{ secrets.ECS_CLUSTER_NAME }} \ --services ${{ secrets.ECS_SERVICE_NAME }} \ --query "services[0].desiredCount" \ --output text) echo "CURRENT_DESIRED_COUNT=$CURRENT_DESIRED_COUNT" >> $GITHUB_ENV - name: Scale down ECS service to 0 run: | aws ecs update-service \ --cluster ${{ secrets.ECS_CLUSTER_NAME }} \ --service ${{ secrets.ECS_SERVICE_NAME }} \ --desired-count 0 - name: Wait for ECS service to scale down run: sleep 10 - name: Scale up ECS service to original desired count run: | aws ecs update-service \ --cluster ${{ secrets.ECS_CLUSTER_NAME }} \ --service ${{ secrets.ECS_SERVICE_NAME }} \ --desired-count $CURRENT_DESIRED_COUNT
Editor is loading...
Leave a Comment