코드/CI-CD-Docker

[CI/CD] environment

Yeah-Panda 2024. 5. 23. 09:35

개발 진행중에는 stage, dev, live 등 여러 환경별로 배포 진행이 이루어 진다

CI/CD 에는 환경 옵션이 존재하고 환경 옵션 설정으로 환경별 배포 이력을 확인 할수 있다

 

image: node:18
cache:
  key: $CI_COMMIT_REF_SLUG
  paths:
    - node_modules/

stages:
  - build
  - test
  - deploy staging
  - deploy production
  - production tests

build website:
  stage: build
  before_script:
    - corepack enable
    - pnpm install
  script:
    - echo $CI_COMMIT_SHORT_SHA
    - pnpm docs:build
    - sed -i "s/TJ-project/$CI_COMMIT_SHORT_SHA/g" ./.vitepress/dist/index.html
  artifacts:
    paths:
      - ./.vitepress/dist
  except:
    - schedules


test website:
  stage: test
  before_script:
    - corepack enable
    - pnpm install
  script:
    - pnpm docs:build
    - pnpm docs:preview &
    - sleep 3
    - curl "http://localhost:4173/" | grep -q "A VitePress Site"
  except:
    - schedules

deploy to stage:
  stage: deploy staging
  cache: {}
  environment:
    #이름과 url 을 입력한다
    name: staging
    url: http://aggressive-language.surge.sh
  before_script:
    - corepack enable
    - SHELL="$(which bash)" pnpm setup
    - source /root/.bashrc
    - pnpm add -g surge
  script:
    - surge --project ./.vitepress/dist --domain aggressive-language.surge.sh
  except:
    - schedules


deploy to production:
  stage: deploy production
  cache: {}
  environment:
    #이름과 url 을 입력한다
    name: production 
    url: http://medical-manager.surge.sh
  before_script:
    - corepack enable
    - SHELL="$(which bash)" pnpm setup
    - source /root/.bashrc
    - pnpm add -g surge
  script:
    - surge --project ./.vitepress/dist --domain medical-manager.surge.sh
  except:
    - schedules

production tests:
  stage: production tests
  image: alpine
  cache: {}
  script:
    - curl -s "http://medical-manager.surge.sh" | grep -q "VitePress"

 

deploy to stage 와 deploy to production 을 확인하면 environment 옵션이 있고 name 과 url 을 입력할수 있습니다.

저 옵션을 설정하더라도 실제 배포에는 아무런 영향이 없습니다.

 

옵션 설정후 배포를 한 차례 진행해봅니다.

그 다음 깃랩 메뉴 Operate > Environments 메뉴로 들어가 보면

 

위와 같은 형태로 환경별 배포 내역을 확인할 수있습니다.

잦은 배포등의 히스토리 추적에 용이합니다.

'코드 > CI-CD-Docker' 카테고리의 다른 글

[Docker] 중지된 컨테이너 자동 제거 하기  (0) 2024.07.10
[Docker] 도커 이미지/컨테이너 삭제  (0) 2024.07.09
[Docker] 인터렉티브 모드  (0) 2024.05.30
[docker] attach, detached  (0) 2024.05.13
[docker] docker run -p  (0) 2024.05.09