diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml new file mode 100644 index 0000000..4e66219 --- /dev/null +++ b/.github/workflows/build_release.yml @@ -0,0 +1,47 @@ +name: Build and Deploy to ECR + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +env: + AWS_REGION: us-east-2 # Set this to your desired region + ECR_REPOSITORY: syntaxmakers1 # Set this to your repository name + IMAGE_TAG: ${{ github.sha }} # Using commit SHA as image tag + +permissions: + contents: read + +jobs: + build-release: + name: Build and Release to ECR + runs-on: self-hosted + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - 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: ${{ env.AWS_REGION }} + + - 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 }} + run: | + # Build the Docker image + docker build --platform linux/amd64 -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest + + # Push the Docker image + docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG + docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest