name: Build, Push and Deploy Discovery on: push: branches: [main] paths: - "discovery/**" - ".gitea/workflows/discovery-deploy.yml" env: AWS_REGION: us-east-1 ECR_REPOSITORY: discovery ECS_CLUSTER_ARN: arn:aws:ecs:us-east-1:887083795404:cluster/app-cluster-384acc4 DISCOVERY_ECS_SERVICE_ARN: arn:aws:ecs:us-east-1:887083795404:service/app-cluster-384acc4/discovery-service-52aa4f6 jobs: build-push-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - 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: ${{ env.AWS_REGION }} - name: Log in to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push image uses: docker/build-push-action@v6 with: context: ./discovery file: ./discovery/Dockerfile push: true tags: | ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:latest ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ gitea.sha }} - name: Install AWS CLI run: | curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip -q awscliv2.zip sudo ./aws/install rm -rf awscliv2.zip aws - name: Deploy to ECS run: | aws ecs update-service \ --cluster "${{ env.ECS_CLUSTER_ARN }}" \ --service "${{ env.DISCOVERY_ECS_SERVICE_ARN }}" \ --force-new-deployment \ --region "${{ env.AWS_REGION }}"