From 6cd96461a0a8f1849eb033876e9d8f21114b8058 Mon Sep 17 00:00:00 2001 From: Favee Date: Sun, 13 Apr 2025 16:34:13 +0100 Subject: [PATCH] Add ECR repository name output for debugging --- .github/workflows/deploy.yml | 37 ++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ee0c53b3d..76c2ad5de 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,45 +15,56 @@ - prod push: branches: - - main - - dev + - main + - dev + jobs: deploy-infrastructure: runs-on: ubuntu-latest environment: ${{ github.event.inputs.environment }} steps: - uses: actions/checkout@v3 + + - name: Set environment name + run: echo "ENV_NAME=${{ github.event.inputs.environment || 'dev' }}" >> $GITHUB_ENV + - name: Configure AWS credentials 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: us-west-2 + - name: Setup Terraform uses: hashicorp/setup-terraform@v2 + - name: Terraform Init working-directory: ./terraform run: terraform init + - name: Terraform Plan working-directory: ./terraform run: | - terraform plan -var="environment=${{ github.event.inputs.environment }}" \ + echo "Using environment: ${{ env.ENV_NAME }}" + terraform plan -var="environment=${{ env.ENV_NAME }}" \ -var="db_username=${{ secrets.DB_USERNAME }}" \ -var="db_password=${{ secrets.DB_PASSWORD }}" \ -var="vpc_id=${{ secrets.VPC_ID }}" + - name: Terraform Apply if: github.event.inputs.environment != 'prod' working-directory: ./terraform run: | - terraform apply -auto-approve -var="environment=${{ github.event.inputs.environment }}" \ + terraform apply -auto-approve -var="environment=${{ env.ENV_NAME }}" \ -var="db_username=${{ secrets.DB_USERNAME }}" \ -var="db_password=${{ secrets.DB_PASSWORD }}" \ -var="vpc_id=${{ secrets.VPC_ID }}" + - name: Terraform Apply (Production) if: github.event.inputs.environment == 'prod' working-directory: ./terraform run: | - terraform apply -var="environment=${{ github.event.inputs.environment }}" \ + terraform apply -var="environment=${{ env.ENV_NAME }}" \ -var="db_username=${{ secrets.DB_USERNAME }}" \ -var="db_password=${{ secrets.DB_PASSWORD }}" \ -var="vpc_id=${{ secrets.VPC_ID }}" @@ -64,38 +75,48 @@ environment: ${{ github.event.inputs.environment }} steps: - uses: actions/checkout@v3 + + - name: Set environment name + run: echo "ENV_NAME=${{ github.event.inputs.environment || 'dev' }}" >> $GITHUB_ENV + - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: maven + - name: Configure AWS credentials 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: us-west-2 + - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v1 + - name: Build, tag, and push image to Amazon ECR env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} - ECR_REPOSITORY: petclinic-${{ github.event.inputs.environment }} + ECR_REPOSITORY: petclinic-${{ env.ENV_NAME }} IMAGE_TAG: ${{ github.sha }} run: | + echo "Using environment: ${{ env.ENV_NAME }}" docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest + - name: Deploy to ECS run: | - aws ecs update-service --cluster petclinic-${{ github.event.inputs.environment }} \ + aws ecs update-service --cluster petclinic-${{ env.ENV_NAME }} \ --service petclinic-service \ --force-new-deployment + - name: Verify Deployment run: | echo "Waiting for deployment to complete..." - aws ecs wait services-stable --cluster petclinic-${{ github.event.inputs.environment }} \ + aws ecs wait services-stable --cluster petclinic-${{ env.ENV_NAME }} \ --services petclinic-service \ No newline at end of file