Merge pull request #27 from gamgyul-code/feat/26-create-route #59
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 workflow on main environment | |
on: | |
push: | |
branches: [main] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: β Checkout branch | |
uses: actions/checkout@v4 | |
- name: π§ Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: π¦ Build with Gradle | |
run: ./gradlew clean build | |
- name: π§ͺ Run tests | |
run: ./gradlew test | |
- name: π€ Upload build artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-artifacts | |
path: build/libs/*.jar | |
deploy: | |
needs: build | |
env: | |
ENV_PATH: .env | |
S3_BUCKET_DIR_NAME: main | |
DEPLOYMENT_GROUP_NAME: main | |
environment: main | |
runs-on: ubuntu-latest | |
steps: | |
- name: β Checkout branch | |
uses: actions/checkout@v3 | |
- name: π₯ Download build artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-artifacts | |
- name: ποΈ Make config folder | |
run: mkdir -p config | |
- name: βοΈ Create .env file | |
run: | | |
touch ${{ env.ENV_PATH }} | |
echo DOMAIN_FIR=${{ secrets.DOMAIN_FIR }} >> ${{ env.ENV_PATH }} | |
echo SOCKET_PORT_PROD=${{ secrets.SOCKET_PORT_MAIN }} >> ${{ env.ENV_PATH }} | |
- name: π¦ Zip project files | |
run: zip -r ./$GITHUB_SHA.zip . | |
- name: π Access to AWS | |
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: ap-northeast-2 | |
- name: π Upload to S3 | |
run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.zip s3://${{ secrets.S3_BUCKET_NAME }}/${{ env.S3_BUCKET_DIR_NAME }}/$GITHUB_SHA.zip | |
- name: π Deploy to EC2 with CodeDeploy | |
run: aws deploy create-deployment | |
--application-name halmang-deploy | |
--deployment-config-name CodeDeployDefault.AllAtOnce | |
--deployment-group-name ${{ env.DEPLOYMENT_GROUP_NAME }} | |
--s3-location bucket=${{ secrets.S3_BUCKET_NAME }},bundleType=zip,key=${{ env.S3_BUCKET_DIR_NAME }}/$GITHUB_SHA.zip |