From 9bf2530fa2caa7d4798e0ef05aac9aafb6ed5f54 Mon Sep 17 00:00:00 2001 From: huncozyboy Date: Sat, 5 Oct 2024 05:48:56 +0900 Subject: [PATCH] =?UTF-8?q?cicd=201=EC=B0=A8=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev.yml | 75 +++++++++++++++++++++++++++++++++++++++ .gitignore | 1 + 2 files changed, 76 insertions(+) create mode 100644 .github/workflows/dev.yml diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml new file mode 100644 index 00000000..6d1ce051 --- /dev/null +++ b/.github/workflows/dev.yml @@ -0,0 +1,75 @@ +name: Weeth-BE CI/CD + +on: + push: + branches: [ "develop" ] + pull_request: + branches: [ "develop" ] + types: [opened, synchronize, reopened] + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + # gradle caching + - name: Gradle Caching + uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*gradle*','**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + # gradle 빌드 + - name: Build with Gradle Wrapper + run: ./gradlew build + + # 빌드된 JAR 파일 확인 + - name: List JAR files + run: ls build/libs + + # Docker build & push + - name: Docker build & push + run: | + docker login -u ${{ secrets.DEV_DOCKER_USER_EMAIL }} -p ${{ secrets.DEV_DOCKER_USER_TOKEN }} + docker build -t ${{ secrets.DEV_DOCKER_USER_NAME }}/weeth . + docker push ${{ secrets.DEV_DOCKER_USER_NAME }}/weeth + + deploy: + runs-on: ubuntu-latest + needs: build + if: github.ref == 'refs/heads/develop' + + steps: + - uses: actions/checkout@v4 + + - name: Deploy to server + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.DEV_EC2_SECRET_HOST }} + username: ubuntu + key: ${{ secrets.DEV_EC2_SECRET_PEM }} + envs: GITHUB_SHA + script: | + EXISTING_CONTAINER_ID=$(sudo docker ps -q -f "publish=8080" -f "status=running") + if [ ! -z "$EXISTING_CONTAINER_ID" ]; then + sudo docker stop $EXISTING_CONTAINER_ID + sudo docker rm $EXISTING_CONTAINER_ID + fi + + sudo docker pull ${{ secrets.DEV_DOCKER_USER_NAME }}/weeth + sudo docker run --name spring -d -p 8080:8080 --env-file ./weeth-dev.env -e TZ=Asia/Seoul ${{ secrets.DEV_DOCKER_USER_NAME }}/weeth + sudo docker image prune -a -f diff --git a/.gitignore b/.gitignore index 99c0e035..6f389cf3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ HELP.md +weeth-dev.env .gradle build/ !gradle/wrapper/gradle-wrapper.jar