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: jsvill CICD | ||
on: | ||
push: | ||
branches: | ||
- main | ||
env: | ||
AWS_REGION: ap-northeast-2 | ||
AWS_S3_BUCKET: cicd-sean-bucket | ||
AWS_CODE_DEPLOY_APPLICATION: cicd-test-cd | ||
AWS_CODE_DEPLOY_GROUP: cicd-test-cd-group | ||
#job의 3분할 | ||
#환경 설정(Job: setup-environment): JDK 설치, AWS Credential 설정 등 환경 설정 관련 단계를 모두 포함합니다. | ||
#빌드(Job: build): 코드 체크아웃, 프로젝트 빌드 등 실제 애플리케이션 빌드를 처리합니다. | ||
#배포(Job: deploy): 빌드된 애플리케이션을 AWS S3에 업로드하고 EC2에 배포합니다. | ||
jobs: | ||
setup-environment: | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v3 | ||
- name: JDK 16 설치 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '16' | ||
distribution: 'corretto' | ||
- name: AWS credential 설정 | ||
uses: aws-actions/configure-aws-credentials@v1 | ||
with: | ||
aws-region: ${{ env.AWS_REGION }} | ||
aws-access-key-id: ${{ secrets.CICD_ACCESS_KEY }} | ||
aws-secret-access-key: ${{ secrets.CICD_SECRET_KEY }} | ||
build: | ||
needs: setup-environment | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: application.properties 파일 생성 | ||
run: | | ||
# mkdir -p ./src/main/resources/ # 디렉토리가 없을 경우를 대비하여 생성 | ||
# $GITHUB_WORKSPACE는 GitHub Actions 환경에서 체크아웃된 코드의 위치를 가리키는 환경 변수 | ||
cd $GITHUB_WORKSPACE | ||
touch ./src/main/resources/application.properties | ||
- name: application.properties에 작성 | ||
run: echo "${{ secrets.APPLICATION }}" > ./src/main/resources/application.properties | ||
- name: application.properties 내용 표시 | ||
run: cat ./src/main/resources/application.properties | ||
- name: gradlew에 실행 권한 부여 | ||
run: chmod +x ./gradlew | ||
- name: 프로젝트 빌드 | ||
run: ./gradlew clean build -x test | ||
deploy: | ||
needs: build | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: S3에 업로드 | ||
run: | | ||
aws deploy push | ||
--application-name ${{ env.AWS_CODE_DEPLOY_APPLICATION }} | ||
--ignore-hidden-files | ||
--s3-location s3://$AWS_S3_BUCKET/cicdtest/$GITHUB_SHA.zip | ||
--source . | ||
- name: EC2에 배포 | ||
run: | | ||
aws deploy create-deployment | ||
--application-name ${{ env.AWS_CODE_DEPLOY_APPLICATION }} | ||
--deployment-config-name CodeDeployDefault.AllAtOnce | ||
--deployment-group-name ${{ env.AWS_CODE_DEPLOY_GROUP }} | ||
--s3-location bucket=$AWS_S3_BUCKET,key=cicdtest/$GITHUB_SHA.zip,bundleType=zip |