From 8bf87a1fd5d9e1a6e3a561ff82de037c00990268 Mon Sep 17 00:00:00 2001 From: rlarltj Date: Mon, 22 Jul 2024 02:56:19 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20deploy=20script=EB=A5=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=ED=95=9C=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 74 ++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..b9cfc44 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,74 @@ +name: deploy to cloud + +on: + push: + branches: + - dev + - setting/** + +# 권한 설정 +permissions: + contents: read + +jobs: + CI-CD: + runs-on: ubuntu-latest + + steps: + # JDK 설정 + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + + # 환경 변수 설정 + - name: Set up Environment + run: echo "${{ secrets.ENV_PROPERTIES_DEV }}" > ./.env + + # 환경 변수 파일 서버로 전달 + - name: Send env file + uses: appleboy/scp-action@master + with: + username: root + host: ${{ secrets.NCP_DEV_IP }} + password: ${{ secrets.NCP_PASSWORD }} + source: "./.env" + target: "/home/ubuntu" + + # 빌드 + - name: Build with Gradle + run: ./gradlew clean bootJar + + # 빌드 후 도커 허브로 push + - name: Docker Build & Push to Hub + run: | + docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} -f ./.docker/Dockerfile . + docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} + + # 도커 컴포즈 설정 파일 서버로 전달하기(복사 후 붙여넣기) + - name: Send docker-compose.yml + uses: appleboy/scp-action@master + with: + username: root + host: ${{ secrets.NCP_DEV_IP }} + password: ${{ secrets.NCP_PASSWORD }} + port: 22 + source: "./.docker/docker-compose.yml" + target: "/home/ubuntu/" + + # 도커 컴포즈 실행 + - name: Deploy + uses: appleboy/ssh-action@master + with: + username: root + host: ${{ secrets.NCP_DEV_IP }} + password: ${{ secrets.NCP_PASSWORD }} + script: | + sudo cp /home/ubuntu/.docker/docker-compose.yml /home/ubuntu + cd /home/ubuntu + sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} + docker-compose up -d + docker image prune -f