Skip to content

Merge pull request #9 from GTable/feature/#3-ci-cd-pipeline #1

Merge pull request #9 from GTable/feature/#3-ci-cd-pipeline

Merge pull request #9 from GTable/feature/#3-ci-cd-pipeline #1

Workflow file for this run

name: Dev Admin CI/CD
on:
push:
branches:
- develop
paths:
- 'application-admin/**'
- 'common/**'
- 'domain-*/**'
- 'application-config/**'
- 'security-admin/**'
- 'build.gradle'
- 'settings.gradle'
- 'gradle/**'
env:
PROJECT_NAME: NoWait
DIVISION: admin
AWS_REGION: ap-northeast-2
AWS_S3_BUCKET: nowait-deploy-github-actions
AWS_CODE_DEPLOY_APPLICATION: nowaiting
AWS_CODE_DEPLOY_GROUP: nowaiting-deploy-dev-admin
jobs:
build-with-gradle:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: JDK 17 설치
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'zulu'
- name: gradlew에 실행 권한 부여
run: chmod +x ./gradlew
- name: Set YML
run: |
mkdir -p application-admin/src/main/resources
echo "${{ secrets.APPLICATION_DEV_ADMIN_YML }}" | base64 --decode > application-admin/src/main/resources/application-admin.yml
find src
- name: 프로젝트 빌드
run: ./gradlew clean :application-admin:bootJar -x test
- name: Prepare deployment package
run: |
rm -rf deploy && mkdir deploy
cp application-admin/build/libs/application-admin-*.jar deploy/application-admin.jar
cp scripts/start-admin.sh scripts/stop-admin.sh appspec-admin.yml deploy/appspec.yml
cd deploy
zip -r ../${{ env.PROJECT_NAME }}-${{ env.DIVISION }}-${{ github.sha }}.zip .
cd ..
- name: AWS credential 설정
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: ${{ env.AWS_REGION }}
aws-access-key-id: ${{ secrets.DEVSERVER_CICD_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.DEVSERVER_CICD_SECRET_KEY }}
- name: S3에 업로드
run: aws deploy push \
--application-name "${{ env.AWS_CODE_DEPLOY_APPLICATION }}" \
--ignore-hidden-files \
--s3-location "s3://${{ env.AWS_S3_BUCKET }}/${{ env.PROJECT_NAME }}/${{ env.DIVISION }}/${{ github.sha }}.zip" \
--source "${{ env.PROJECT_NAME }}-${{ env.DIVISION }}-${{ github.sha }}.zip"
- 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=${{ env.AWS_S3_BUCKET }},key=${{ env.PROJECT_NAME }}/${{ env.DIVISION }}/${{ github.sha }}.zip,bundleType=zip