Ability to pass in allow_logged_in_users when creating a new project.… #55
This file contains hidden or 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: Redeploy to AWS ECS Fargate | |
| on: | |
| push: | |
| branches: [ illinois-chat ] | |
| paths: | |
| - 'ai_ta_backend/**' | |
| - 'requirements.txt' | |
| - 'Self-Hosted-Dockerfile' | |
| - 'Dockerfile.ecs' | |
| - '.github/workflows/deploy-to-ecs.yml' | |
| workflow_dispatch: # Allows manual triggering | |
| # Environment variables. Edit to match the setup for this service. | |
| env: | |
| AWS_REGION: us-east-2 | |
| ECS_CLUSTER: uiuc-chat-dev | |
| ECR_REPOSITORY: uiuc-chat-backend | |
| ECS_SERVICE: backend-service-358yl957 | |
| ECS_TASK_DEFINITION: backend | |
| CONTAINER_NAME: backend | |
| ECR_REPOSITORY_WORKER: uiuc-chat-worker | |
| ECS_SERVICE_WORKER: ingest-worker-service-00snks4u | |
| ECS_TASK_DEFINITION_WORKER: ingest-worker | |
| CONTAINER_NAME_WORKER: worker | |
| jobs: | |
| deploy-backend: | |
| name: Deploy Backend Service | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| 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: Login to Amazon ECR | |
| id: login-ecr | |
| uses: aws-actions/amazon-ecr-login@v2 | |
| - name: Set image tag (adaptive short commit hash + branch) | |
| id: set-tag | |
| run: | | |
| SHORT_SHA=$(git rev-parse --short HEAD) | |
| BRANCH_TAG=$(echo "${GITHUB_REF##*/}" | tr '/' '-') | |
| IMAGE_TAG="${BRANCH_TAG}-${SHORT_SHA}" | |
| echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_ENV | |
| echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT | |
| echo "branch_tag=${BRANCH_TAG}" >> $GITHUB_OUTPUT | |
| echo "image_tag=${IMAGE_TAG}" >> $GITHUB_OUTPUT | |
| - name: Build, tag, and push image to Amazon ECR | |
| id: build-image | |
| env: | |
| ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
| run: | | |
| set -euo pipefail | |
| echo "Building image with tag: $IMAGE_TAG" | |
| BRANCH_TAG=${{ steps.set-tag.outputs.branch_tag }} | |
| docker build -f Self-Hosted-Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . | |
| docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG | |
| # Also tag with branch only (optional, for easy rollback by branch) | |
| docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:${BRANCH_TAG} | |
| docker push $ECR_REGISTRY/$ECR_REPOSITORY:${BRANCH_TAG} | |
| # Maintain latest tag | |
| docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest | |
| docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest | |
| echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT | |
| - name: Download current task definition | |
| run: | | |
| aws ecs describe-task-definition \ | |
| --task-definition ${{ env.ECS_TASK_DEFINITION }} \ | |
| --query taskDefinition > task-definition-raw.json | |
| # Remove unsupported fields that cause compatibility issues | |
| cat task-definition-raw.json | jq 'del(.registeredAt, .registeredBy, .taskDefinitionArn, .revision, .status, .requiresAttributes, .placementConstraints, .compatibilities, .enableFaultInjection)' > task-definition.json | |
| - name: Fill in the new image ID in the Amazon ECS task definition | |
| id: task-def | |
| uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
| with: | |
| task-definition: task-definition.json | |
| container-name: ${{ env.CONTAINER_NAME }} | |
| image: ${{ steps.build-image.outputs.image }} | |
| - name: Deploy Amazon ECS task definition | |
| uses: aws-actions/amazon-ecs-deploy-task-definition@v2 | |
| with: | |
| task-definition: ${{ steps.task-def.outputs.task-definition }} | |
| service: ${{ env.ECS_SERVICE }} | |
| cluster: ${{ env.ECS_CLUSTER }} | |
| wait-for-service-stability: true | |
| deploy-ingest-worker: | |
| name: Deploy Ingest Worker Service | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| 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: Login to Amazon ECR | |
| id: login-ecr-worker | |
| uses: aws-actions/amazon-ecr-login@v2 | |
| - name: Set worker image tag (adaptive short commit hash + branch) | |
| id: set-worker-tag | |
| run: | | |
| SHORT_SHA=$(git rev-parse --short HEAD) | |
| BRANCH_TAG=$(echo "${GITHUB_REF##*/}" | tr '/' '-') | |
| WORKER_IMAGE_TAG="${BRANCH_TAG}-${SHORT_SHA}" | |
| echo "WORKER_IMAGE_TAG=${WORKER_IMAGE_TAG}" >> $GITHUB_ENV | |
| echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT | |
| echo "branch_tag=${BRANCH_TAG}" >> $GITHUB_OUTPUT | |
| echo "image_tag=${WORKER_IMAGE_TAG}" >> $GITHUB_OUTPUT | |
| - name: Build, tag, and push worker image to Amazon ECR | |
| id: build-worker-image | |
| env: | |
| ECR_REGISTRY: ${{ steps.login-ecr-worker.outputs.registry }} | |
| run: | | |
| set -euo pipefail | |
| echo "Building worker image with tag: $WORKER_IMAGE_TAG" | |
| BRANCH_TAG=${{ steps.set-worker-tag.outputs.branch_tag }} | |
| docker build -t $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:$WORKER_IMAGE_TAG ai_ta_backend/rabbitmq/ | |
| docker push $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:$WORKER_IMAGE_TAG | |
| # Also tag with branch only (optional, for easy rollback by branch) | |
| docker tag $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:$WORKER_IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:${BRANCH_TAG} | |
| docker push $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:${BRANCH_TAG} | |
| # Maintain latest tag | |
| docker tag $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:$WORKER_IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:latest | |
| docker push $ECR_REGISTRY/$ECR_REPOSITORY_WORKER:latest | |
| echo "image=$ECR_REGISTRY/$ECR_REPOSITORY_WORKER:$WORKER_IMAGE_TAG" >> $GITHUB_OUTPUT | |
| - name: Download current worker task definition | |
| run: | | |
| aws ecs describe-task-definition \ | |
| --task-definition ${{ env.ECS_TASK_DEFINITION_WORKER }} \ | |
| --query taskDefinition > worker-task-definition-raw.json | |
| # Remove unsupported fields that cause compatibility issues | |
| cat worker-task-definition-raw.json | jq 'del(.registeredAt, .registeredBy, .taskDefinitionArn, .revision, .status, .requiresAttributes, .placementConstraints, .compatibilities, .enableFaultInjection)' > worker-task-definition.json | |
| - name: Fill in the new image ID in the worker task definition | |
| id: task-def-worker | |
| uses: aws-actions/amazon-ecs-render-task-definition@v1 | |
| with: | |
| task-definition: worker-task-definition.json | |
| container-name: ${{ env.CONTAINER_NAME_WORKER }} | |
| image: ${{ steps.build-worker-image.outputs.image }} | |
| - name: Deploy worker ECS task definition | |
| uses: aws-actions/amazon-ecs-deploy-task-definition@v2 | |
| with: | |
| task-definition: ${{ steps.task-def-worker.outputs.task-definition }} | |
| service: ${{ env.ECS_SERVICE_WORKER }} | |
| cluster: ${{ env.ECS_CLUSTER }} | |
| wait-for-service-stability: true |