Feature/165 조회수 증가 수정 #150
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Node.js Dev CI/CD | |
on: | |
pull_request: # pull request -> merge 가 되었을 때 Github Action 실행! | |
types: [closed] | |
workflow_dispatch: # 수동 실행도 가능하도록 함 | |
jobs: | |
build: | |
# pull 요청이 develop에 merge 되었을 때 아래 steps를 실행 | |
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'develop' | |
runs-on: ubuntu-latest # 우분투 최신 버전으로 실행 | |
strategy: | |
matrix: | |
node-version: ["18.x"] # 노드 버전 지정! 여러 개도 가능! ['18.x', '14.x'] 요렇게 | |
steps: | |
# build 할 코드를 가져옴 (코드 checkout - github에서 제공해주는 checkout@v3 사용) | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# Node.js 세팅 | |
- name: Set up Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "npm" | |
- name: Install Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
# dependencies 설치, test and build | |
- name: Install dependencies | |
run: npm ci # dependencies 설치 npm ci, npm install 모두 다 됨! | |
# .env 파일 생성 | |
- name: Create env file | |
run: | | |
echo "NODE_ENV=${{ secrets.DEV_NODE_ENV }}" >> .env | |
echo "PORT=${{ secrets.PORT }}" >> .env | |
echo "MONGO_URI=${{ secrets.MONGO_URI }}" >> .env | |
echo "MONGO_DB_NAME=${{ secrets.DEV_MONGO_DB_NAME }}" >> .env | |
echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> .env | |
echo "REDIS_HOST=${{ secrets.DEV_REDIS_HOST }}" >> .env | |
echo "REDIS_PORT=${{ secrets.REDIS_PORT }}" >> .env | |
# 빌드 | |
- name: Run build:dev | |
run: npm run build:dev | |
# 테스트 | |
- name: Run test | |
run: npm test | |
# 현재 시간 얻기 (Build 시점의 시간 얻기) | |
- name: Get current time | |
uses: 1466587594/get-current-time@v2 | |
id: current-time | |
with: | |
format: YYYY-MM-DDTHH-mm-ss | |
utcOffset: "+09:00" # 한국 시간 고려 | |
# 현재 시간 출력 (위에서 얻은 build 시점의 시간 보여주기) | |
- name: Show Current Time | |
run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}" | |
shell: bash | |
# 그냥 다 했다고 출력하기 | |
- name: Dev CI PASS! | |
run: echo Dev CI PASS |