From 6df29c9fbc90ef3273ceaf54218f53ec2cded660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=96=91=EC=9B=90=EC=A4=80?= <97458548+ywj9811@users.noreply.github.com> Date: Sun, 29 Oct 2023 00:49:54 +0900 Subject: [PATCH] docs: CD.yml --- .github/workflows/CD.yml | 77 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/CD.yml diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml new file mode 100644 index 0000000..cf008cb --- /dev/null +++ b/.github/workflows/CD.yml @@ -0,0 +1,77 @@ +name: Java CD with Gradle + +on: + push: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + env : + working-directory: ./ + APPLICATION: ${{ secrets.APPLICATION }} + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'adopt' + + - name: Cache Gradle packages + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Create application.yml + run: | + echo "${{env.APPLICATION}}" > ./src/main/resources/application.yml + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + working-directory: ${{ env.working-directory }} + + - name: Build with Gradle + run: ./gradlew build + working-directory: ${{ env.working-directory }} + + - name: Cleanup Gradle Cache + if: ${{ always() }} + run: | + rm -f ~/.gradle/caches/modules-2/modules-2.lock + rm -f ~/.gradle/caches/modules-2/gc.properties + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and Push Docker image + run: | + docker build -t ywj9811/postgraduate_log:latest . + docker push ywj9811/postgraduate_log:latest + + - name: Deploy + uses: appleboy/ssh-action@0.1.10 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + key: ${{ secrets.PRIVATE_KEY }} + envs: GITHUB_SHA + script: | + docker-compose -f /home/ywj9811/config/docker-compose.yml down + docker-compose -f /home/ywj9811/config/docker-compose.yml pull + docker-compose -f /home/ywj9811/config/docker-compose.yml up -d --force-recreate --build + +