From dfbacd77fa0fef73f138d36d52cc416920471423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A7=88=ED=98=84=EC=9A=B0?= Date: Wed, 15 Nov 2023 20:06:34 +0900 Subject: [PATCH] =?UTF-8?q?deploy:=20CI/CD=20=EA=B5=AC=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cicd.yml | 54 ++++++++++++++++++++++++++++++++++++++ Dockerfile | 13 +++++++++ 2 files changed, 67 insertions(+) create mode 100644 .github/workflows/cicd.yml create mode 100644 Dockerfile diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml new file mode 100644 index 0000000..e592e12 --- /dev/null +++ b/.github/workflows/cicd.yml @@ -0,0 +1,54 @@ +name: Nodam-Nodam Frontend CI/CD + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Node.js v18 + uses: actions/setup-node@v3 + with: + node-version: "18" + + - name: docker image build + run: docker buildx build --platform=linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/nodam-nodam_frontend . + + - name: docker login + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: docker hub push + run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/nodam-nodam_frontend + + deploy: + needs: build + runs-on: self-hosted + + steps: + - name: docker pull + run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/nodam-nodam_frontend + + - name: docker stop container + run: sudo docker rm -f nodam-nodam_frontend + + - name: docker run new container + run: sudo docker run -it -d -p 8082:8080 --name nodam-nodam_frontend ${{ secrets.DOCKERHUB_USERNAME }}/nodam-nodam_frontend + + - name: docker rmi none image + run: | + dangling_images=$(docker images -f "dangling=true" -q) + + if [ -n "$dangling_images" ]; then + sudo docker rmi $dangling_images + else + echo "No dangling images to remove." + fi diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7f45db3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM node:18 + +WORKDIR /app + +RUN npm install -g yarn + +COPY package.json yarn.lock ./ + +RUN yarn install + +COPY . . + +ENTRYPOINT [ "yarn", "start" ] \ No newline at end of file