Skip to content

test: 배포 테스트 #4

test: 배포 테스트

test: 배포 테스트 #4

Workflow file for this run

name: Deploy AI Services to AWS Fargate
on:
push:
branches:
- master
env:
AWS_REGION: ap-northeast-2
ECR_REGISTRY: 767828735725.dkr.ecr.ap-northeast-2.amazonaws.com
jobs:
changes:
name: Detect Changes
runs-on: ubuntu-latest
outputs:
captioning: ${{ steps.filter.outputs.captioning }}
classifying: ${{ steps.filter.outputs.classifying }}
masking: ${{ steps.filter.outputs.masking }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
captioning:
- 'captioning-service/**'
classifying:
- 'classifying-service/**'
masking:
- 'masking-service/**'
deploy-captioning:
name: Deploy Captioning Service
needs: changes
if: needs.changes.outputs.captioning == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
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
id: build-image
env:
ECR_REPOSITORY: captioning-service
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} ./captioning-service
docker push ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }}
- name: Update Amazon ECS service
run: |
aws ecs update-service --cluster ai-services-cluster --service captioning-service --force-new-deployment --region ${{ env.AWS_REGION }}
deploy-classifying:
name: Deploy Classifying Service
needs: changes
if: needs.changes.outputs.classifying == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
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
id: build-image
env:
ECR_REPOSITORY: classifying-service
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} ./classifying-service
docker push ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }}
- name: Update Amazon ECS service
run: |
aws ecs update-service --cluster ai-services-cluster --service classifying-service --force-new-deployment --region ${{ env.AWS_REGION }}
deploy-masking:
name: Deploy Masking Service
needs: changes
if: needs.changes.outputs.masking == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
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
id: build-image
env:
ECR_REPOSITORY: masking-service
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} ./masking-service
docker push ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }}
- name: Update Amazon ECS service
run: |
aws ecs update-service --cluster ai-services-cluster --service masking-service --force-new-deployment --region ${{ env.AWS_REGION }}