Merge pull request #162 from Myaongi/refactor/#160 #91
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: Deploy To EC2 | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Github Repository 파일 불러오기 | |
| uses: actions/checkout@v4 | |
| - name: JDK 17버전 설치 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| # application-dev.yml 파일 생성 (Secrets에 저장된 값 사용) | |
| - name: application-dev.yml 파일 만들기 | |
| run: echo "${{ secrets.APPLICATION_DEV_YML }}" > ./src/main/resources/application-dev.yml | |
| - name: 테스트 및 빌드하기 | |
| run: ./gradlew clean build -x test | |
| - name: AWS Resource에 접근할 수 있게 AWS credentials 설정 | |
| uses: aws-actions/configure-aws-credentials@v4 | |
| with: | |
| aws-region: ap-northeast-2 | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| # Docker Hub 로그인 (Secrets에 아이디/비번 저장해둬야 함) | |
| - name: Docker Hub 로그인 | |
| run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin | |
| - name: Docker 이미지 생성 | |
| run: docker build -t gangajikimi-server . | |
| # Docker Hub용 태그 붙이기 (원희 계정 기준) | |
| - name: Docker 이미지에 Tag 붙이기 | |
| run: docker tag gangajikimi-server ${{ secrets.DOCKERHUB_USERNAME }}/gangajikimi-server:latest | |
| - name: Docker Hub에 Push | |
| run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/gangajikimi-server:latest | |
| - name: 압축하기 | |
| run: tar -czvf $GITHUB_SHA.tar.gz appspec.yml scripts | |
| - name: S3에 프로젝트 폴더 업로드하기 | |
| run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.tar.gz s3://gangajikimi-server/$GITHUB_SHA.tar.gz | |
| - name: CodeDeploy를 활용해서 EC2에 압축 파일 코드 배포 | |
| run: aws deploy create-deployment | |
| --application-name gangajikimi | |
| --deployment-group-name gangajikimi-production | |
| --deployment-config-name CodeDeployDefault.AllAtOnce | |
| --s3-location bucket=gangajikimi-server,bundleType=tgz,key=$GITHUB_SHA.tar.gz |