GitLab CI/CD 파이프라인 구축하기
수동 배포를 하다 보면 실수가 생긴다. 빌드를 까먹거나, 테스트를 안 돌리거나, 잘못된 브랜치를 배포하거나. GitLab CI/CD를 쓰면 코드를 push할 때 자동으로 테스트 → 빌드 → 배포까지 돌릴 수 있다. .gitlab-ci.yml 파일 하나면 된다. 기본 구조 프로젝트 루트에 .gitlab-ci.yml을 만든다: stages: - test - build - deploy variables: NODE_VERSION: "20" test: stage: test image: node:${NODE_VERSION}-alpine script: - npm ci - npm run lint - npm test cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules/ build: stage: build image: node:${NODE_VERSION}-alpine script: - npm ci - npm run build artifacts: paths: - dist/ expire_in: 1 hour only: - main - develop deploy: stage: deploy image: alpine:latest script: - apk add --no-cache rsync openssh-client - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H $DEPLOY_HOST >> ~/.ssh/known_hosts - rsync -avz --delete dist/ $DEPLOY_USER@$DEPLOY_HOST:$DEPLOY_PATH/ only: - main when: manual stages에서 순서를 정의하고, 각 job이 어떤 stage에 속하는지 지정한다. 같은 stage의 job은 병렬로 실행된다. ...