From e99065d5697d0bd6f061d27e7505aa87439e313a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=AF=B8=EB=9E=98?= Date: Wed, 24 Apr 2024 17:01:28 +0900 Subject: [PATCH] Update main.yml --- .github/workflows/main.yml | 83 +++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e45661f3..3cf447d4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,50 +1,49 @@ -name: CI/CD using github actions & docker +name: CI/CD using GitHub Actions & Docker on: push: - branches: [ "master" ] # 해당 branch에 푸쉬 발생 시 업데이트 + branches: [ "master" ] jobs: CI-CD: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Set up JDK 17 - uses: actions/setup-java@v2 - with: - java-version: '17' - distribution: 'temurin' - - - uses: actions/checkout@v3 - - run: touch ./src/main/resources/application.properties - - run: echo "${{ secrets.APPLICATION }}" > ./src/main/resources/application.properties - - run: cat ./src/main/resources/application.properties - - - - - name: set chmod - run: chmod +x ./gradlew - - - name: Build with Gradle - run: ./gradlew bootJar - - - name: Docker build & push to prod - run: | - docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - docker build -f Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT . - docker push ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT - - - name: Deploy to prod - uses: appleboy/ssh-action@master - id: deploy-prod - with: - host: ${{ secrets.HOST_PROD }} # EC2 퍼블릭 IPv4 DNS - username: ubuntu - key: ${{ secrets.PRIVATE_KEY }} # EC2 private key - envs: GITHUB_SHA - script: | - docker stop keep - docker rm keep - docker rmi ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT - docker pull ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT - docker run -d -p 8080:8080 --name keep ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'temurin' + + - name: Create directory and file if not exist + run: | + mkdir -p ./src/main/resources + echo "${{ secrets.APPLICATION }}" > ./src/main/resources/application.properties + + - name: Set executable permission + run: chmod +x ./gradlew + + - name: Build with Gradle + run: ./gradlew bootJar + + - name: Docker build & push to prod + run: | + docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + docker build -f Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT . + docker push ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT + + - name: Deploy to prod + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST_PROD }} + username: ubuntu + key: ${{ secrets.PRIVATE_KEY }} + envs: GITHUB_SHA + script: | + docker stop keep + docker rm keep + docker rmi ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT + docker pull ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT + docker run -d -p 8080:8080 --name keep ${{ secrets.DOCKER_USERNAME }}/keep:0.0.1-SNAPSHOT