diff --git a/.github/workflows/Backend-CD-Prod.yml b/.github/workflows/Backend-CD-Prod-A.yml similarity index 84% rename from .github/workflows/Backend-CD-Prod.yml rename to .github/workflows/Backend-CD-Prod-A.yml index 5640a3a8..b3e8dc66 100644 --- a/.github/workflows/Backend-CD-Prod.yml +++ b/.github/workflows/Backend-CD-Prod-A.yml @@ -26,10 +26,6 @@ jobs: token: ${{ secrets.ACTION_TOKEN }} submodules: true - - name: Copy docker-compose.yml to home directory - working-directory: ./backend/pokerogue/src/main/resources - run: sudo cp ./docker-compose-prod.yml /home/ubuntu/docker-compose.yml - - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -71,5 +67,7 @@ jobs: docker pull ${{ secrets.DOCKER_SERVER_IMAGE }} - docker-compose -f docker-compose.yml up -d server - docker image prune -f + docker run -d -p 80:8080 --name server \ + -e JAVA_OPTS="-XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0" \ + -e TZ=Asia/Seoul \ + ${{ secrets.DOCKER_SERVER_IMAGE }} diff --git a/.github/workflows/Backend-CD-Prod-B.yml b/.github/workflows/Backend-CD-Prod-B.yml new file mode 100644 index 00000000..af02e421 --- /dev/null +++ b/.github/workflows/Backend-CD-Prod-B.yml @@ -0,0 +1,73 @@ +name: Backend Production Server CD + +on: + push: + branches: [ "be/release" ] + tags: + - 'v*' + +permissions: + contents: read + +jobs: + test: + uses: ./.github/workflows/Backend-CI.yml + secrets: inherit + + + build: + needs: test + runs-on: [cd, app-b] + steps: + + - name: Checkout + uses: actions/checkout@v3 + with: + token: ${{ secrets.ACTION_TOKEN }} + submodules: true + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + + - name: Build with Gradle + run: ./gradlew bootJar + working-directory: ./backend/pokerogue + + - name: Docker build and push + run: | + docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + + docker build -t ${{ secrets.DOCKER_SERVER_IMAGE }} -f ./backend/pokerogue/docker/Dockerfile ./backend/pokerogue + docker push ${{ secrets.DOCKER_SERVER_IMAGE }} + + + deploy: + needs: build + runs-on: [cd, app-b] + steps: + + - name: Change permission + run: | + sudo chown -R ubuntu:ubuntu /home/ubuntu/actions-runner/_work/2024-pokerogue-helper + + - name: Deploy + run: | + cd /home/ubuntu + + sudo chmod 666 /var/run/docker.sock + + if [ "$(docker ps -qa -f name=server)" ]; then + docker rm -f server + else + echo "No container named 'server' to remove." + fi + + docker pull ${{ secrets.DOCKER_SERVER_IMAGE }} + + docker run -d -p 80:8080 --name server \ + -e JAVA_OPTS="-XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0" \ + -e TZ=Asia/Seoul \ + ${{ secrets.DOCKER_SERVER_IMAGE }}