Refacor: νμκ°μ μ μ½κ΄λμ λ° μΈλΆ μ»¬λΌ μμ #12
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: suppin dev CI/CD # Workflow μ΄λ¦ | |
on: | |
pull_request: | |
branches: | |
- dev | |
types: | |
- closed | |
workflow_dispatch: # μλ μ€νλ κ°λ₯νλλ‘ | |
jobs: | |
build: | |
runs-on: ubuntu-latest # OS νκ²½ μΈν | |
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'dev' # PRμ΄ Mergeλκ³ , base branchκ° devμΌ λλ§ μ€ν | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 # .github λλ ν 리 νμ κ³μΈ΅μ λͺ¨λ μ½λ νμΈ | |
# java μ€μΉ | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
# aws νκ²½λ³μ μ€μ | |
- name: Set Environment | |
uses: microsoft/variable-substitution@v1 | |
with: | |
files: ./src/main/resources/application.yml | |
env: | |
spring.datasource.url: ${{ secrets.DB_URL }} | |
spring.datasource.username: ${{ secrets.DB_USER }} | |
spring.datasource.password: ${{ secrets.DB_PASSWORD }} | |
spring.datasource.driver-class-name: ${{ secrets.DB_DRIVER }} | |
jwt.token.secret: ${{ secrets.JWT_TOKEN_SECRET }} | |
jwt.token.expiration: ${{ secrets.ACCESS_EXPIRY_SECONDS }} | |
# gradlew μ€ν κΆν λΆμ¬ | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
shell: bash | |
# ν μ€νΈλ₯Ό μ μΈν λΉλ μμ | |
- name: Build with Gradle | |
run: ./gradlew build -x test | |
shell: bash | |
- name: Get current time | |
uses: 1466587594/get-current-time@v2 | |
id: current-time | |
with: | |
format: YYYY-MM-DD HH:mm:ss | |
utcOffset: '+09:00' # build μμ μ μκ°μ κΈ°λ‘ | |
- name: Show current time | |
run: echo "Current time is ${{ steps.current-time.outputs.time }}" | |
shell: bash | |
- name: Generate deployment package | |
run: | | |
mkdir -p deploy | |
cp build/libs/*.jar deploy/application.jar | |
cp Procfile deploy/Procfile | |
cp -r .ebextensions_dev deploy/.ebextensions | |
cp -r .platform deploy/.platform | |
cd deploy && zip -r deploy.zip . | |
# AWS Elastic Beanstalk λ°°ν¬ | |
- name: BeanStalk Deploy | |
uses: einaregilsson/beanstalk-deploy@v20 | |
with: | |
aws_access_key: ${{ secrets.AWS_ACTION_ACCESS_KEY_ID }} | |
aws_secret_key: ${{ secrets.AWS_ACTION_SECRET_ACCESS_KEY }} | |
region: 'ap-northeast-2' | |
application_name: 'suppin-dev' | |
environment_name: 'Suppin-dev-env' | |
version_label: github-action-${{ steps.current-time.outputs.formattedTime }} | |
deployment_package: 'deploy/deploy.zip' | |
wait_for_deployment: false | |