Merge remote-tracking branch 'origin/develop' into develop #19
This file contains 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: Deploy Server | |
on: | |
push: | |
branches: [ "develop" ] | |
env: | |
# 서울 REGION | |
AWS_REGION: ap-northeast-2 | |
# 1.AWS ECR 이름 | |
ECR_REPOSITORY: 100shot-ecr | |
# 5.AWS의 ECS 클러스터의 SERVICE 이름 | |
ECS_SERVICE: 100shot-back-service | |
# 4.AWS ECS 클러스터 이름 | |
ECS_CLUSTER: taveshot-cluster | |
# 3.정의한 ECS TASK 이름 | |
ECS_TASK_DEFINITION: ./aws/task_definition.json | |
# 2.ECR의 컨테이너 이름 | |
CONTAINER_NAME: 100shot-backend | |
permissions: | |
contents: read | |
jobs: | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Decode And Make application.yml | |
run: | | |
mkdir -p ./src/main/resources | |
APPLICATION_YML_PATH=./src/main/resources/application.yml | |
if [ -f "$APPLICATION_YML_PATH" ]; then | |
echo "Removing existing application.yml" | |
rm "$APPLICATION_YML_PATH" | |
fi | |
echo "Creating new application.yml with decoded content" | |
echo "${{ secrets.APPLICATION_YML_DECODE }}" | base64 --decode > "$APPLICATION_YML_PATH" | |
- name: Build with Gradle | |
run: ./gradlew bootJar | |
- 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 | |
id: build-image | |
env: | |
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
IMAGE_TAG: ${{ github.sha }} | |
run: | | |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . | |
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG | |
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT | |
- 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: ${{ env.ECS_TASK_DEFINITION }} | |
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@v1 | |
with: | |
task-definition: ${{ steps.task-def.outputs.task-definition }} | |
service: ${{ env.ECS_SERVICE }} | |
cluster: ${{ env.ECS_CLUSTER }} | |
wait-for-service-stability: true |