diff --git a/.github/workflows/cicd.yml b/.github/workflows/CD.yml similarity index 87% rename from .github/workflows/cicd.yml rename to .github/workflows/CD.yml index 88129bed..619d7d6f 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/CD.yml @@ -1,61 +1,57 @@ -# github repository actions 페이지에 나타날 이름 -name: CI/CD for front using github actions - -# event trigger -# develop 브랜치에 pull_request가 닫히거나 푸시했을때 실행 -on: - pull_request: - types: [closed] - branches: [ "develop" ] - push: - branches: [ "develop" ] - - -permissions: - contents: read - -jobs: - front-cicd: - runs-on: ubuntu-latest - steps: - # 저장소 코드를 체크아웃합니다. (PR 올린 코드를 가져오는 행위) - - uses: actions/checkout@v4 - - # Node.js 환경 설정 - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 # 지정된 Node.js 버전 사용 - cache: npm # setup-node 의 캐시 기능을 사용함 - cache-dependency-path: package-lock.json # 캐시 기능을 사용할 때 캐시의 기준이 될 파일을 지정 - - - name: Install Dependencies - run: npm install - - - name: Build with npm - run: npm run build || exit 0 # exit 0를 추가하여 경고성 오류 무시 - - - name: Create nginx.conf - run: touch ./nginx.conf - - run: echo "${{ secrets.NGINX_CONF }}" > ./nginx.conf - - ## docker build & push to production - - name: Docker build & push - run: | - docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - docker build -t ${{ secrets.DOCKER_FRONT_REPO }} . - docker push ${{ secrets.DOCKER_FRONT_REPO }} - - ## deploy - - name: Deploy - uses: appleboy/ssh-action@master - id: deploy - with: - host: ${{ secrets.FRONT_HOST }} - username: ${{ secrets.FRONT_HOST_USERNAME }} - key: ${{ secrets.FRONT_HOST_KEY }} - port: ${{ secrets.FRONT_HOST_PORT }} - script: | - docker rm -f taskflow-front - docker image rm ${{ secrets.DOCKER_FRONT_REPO }} -f - docker run --name taskflow-front -d -p 80:80 --restart on-failure ${{ secrets.DOCKER_FRONT_REPO }} +# github repository actions 페이지에 나타날 이름 +name: CD for front using github actions + +# event trigger +# develop 브랜치에 pull_request가 닫히거나 푸시했을때 실행 +on: + push: + branches: [ "develop" ] + +permissions: + contents: read + +jobs: + front-cicd: + runs-on: ubuntu-latest + steps: + # 저장소 코드를 체크아웃합니다. (PR 올린 코드를 가져오는 행위) + - uses: actions/checkout@v4 + + # Node.js 환경 설정 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 # 지정된 Node.js 버전 사용 + cache: npm # setup-node 의 캐시 기능을 사용함 + cache-dependency-path: package-lock.json # 캐시 기능을 사용할 때 캐시의 기준이 될 파일을 지정 + + - name: Install Dependencies + run: npm install + + - name: Build with npm + run: npm run build-only + + - name: Create nginx.conf + run: touch ./nginx.conf + - run: echo "${{ secrets.NGINX_CONF }}" > ./nginx.conf + + ## docker build & push to production + - name: Docker build & push + run: | + docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + docker build -t ${{ secrets.DOCKER_FRONT_REPO }} . + docker push ${{ secrets.DOCKER_FRONT_REPO }} + + ## deploy + - name: Deploy + uses: appleboy/ssh-action@master + id: deploy + with: + host: ${{ secrets.FRONT_HOST }} + username: ${{ secrets.FRONT_HOST_USERNAME }} + key: ${{ secrets.FRONT_HOST_KEY }} + port: ${{ secrets.FRONT_HOST_PORT }} + script: | + docker rm -f taskflow-front + docker image rm ${{ secrets.DOCKER_FRONT_REPO }} -f + docker run --name taskflow-front -d -p 80:80 --restart on-failure ${{ secrets.DOCKER_FRONT_REPO }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 00000000..d68ac831 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,33 @@ +# github repository actions 페이지에 나타날 이름 +name: CI for front using github actions + +# event trigger +# develop 브랜치에 pull_request가 닫히거나 푸시했을때 실행 +on: + pull_request: + types: [ opened, synchronize ] + branches: [ "develop" ] + +permissions: + contents: read + +jobs: + front-cicd: + runs-on: ubuntu-latest + steps: + # 저장소 코드를 체크아웃합니다. (PR 올린 코드를 가져오는 행위) + - uses: actions/checkout@v4 + + # Node.js 환경 설정 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 # 지정된 Node.js 버전 사용 + cache: npm # setup-node 의 캐시 기능을 사용함 + cache-dependency-path: package-lock.json # 캐시 기능을 사용할 때 캐시의 기준이 될 파일을 지정 + + - name: Install Dependencies + run: npm install + + - name: Build with npm + run: npm run build-only \ No newline at end of file