배포
배포, 롤백, 안전성, 승인에 대해 설명합니다.
환경에 코드 버전을 배포하면 배포(deployment)가 생성됩니다. 일반적으로 환경당 활성 배포는 하나만 존재합니다. GitLab은 다음을 제공합니다. 각 환경에 대한 배포의 전체 히스토리를 제공합니다. 배포를 추적하므로 서버에 무엇이 배포되어 있는지 항상 알 수 있습니다. 프로젝트에 Kubernetes 같은 배포 서비스가 연결되어 있다면, 이를 사용해 배포를 지원할 수 있습니다. 배포가 생성된 후에는 이를 사용자에게 롤아웃할 수 있습니다. 수동 배포 구성 # 사람이 수동으로 배포를 시작해야 하는 job을 만들 수 있습니다. 예시는 다음과 같습니다. deploy_prod: stage: deploy script: - echo "Deploy to production server" environment: name: production url: https://example.com rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: manual when: manual 액션은 다음과 같은 역할을 합니다. GitLab UI에서 해당 job에 대해 실행 ([play]) 버튼을 노출하며, Can be manually deployed to <environment> 텍스트가 함께 표시됩니다. deploy_prod job을 수동으로 트리거해야 함을 의미합니다. 실행 ([play]) 버튼은 파이프라인, 환경, 배포, job 뷰에서 찾을 수 있습니다. 배포별로 새로 포함된 머지 리퀘스트 추적 # GitLab은 배포별로 새로 포함된 머지 리퀘스트를 추적할 수 있습니다. 배포가 성공하면 시스템은 최신 배포와 이전 배포 사이의 커밋 diff를 계산합니다. 추적 정보는 배포 API 로 가져오거나, 머지 리퀘스트 페이지 의 머지 후 파이프라인에서 확인할 수 있습니다. 추적을 활성화하려면 다음 중 하나를 충족하도록 환경을 구성합니다. 환경 이름 이 / 를 사용하는 폴더 형태가 아닌 경우입니다(장기 유지되는 환경 또는 최상위 환경). 환경 티어 가 production 또는 staging 인 경우입니다. 다음은 .gitlab-ci.yml 에서 environment 키워드 를 사용하는 구성 예시입니다. # Trackable environment: production environment: production/aws environment: development # Non Trackable environment: review/$CI_COMMIT_REF_SLUG environment: testing/aws 구성 변경 사항은 새 배포에만 적용됩니다. 기존 배포 레코드는 머지 리퀘스트가 연결되거나 연결 해제되지 않습니다. 로컬에서 배포 확인 # 각 배포마다 Git 리포지터리에 참조가 저장되므로, 현재 환경의 상태를 파악하려면 git fetch 한 번이면 충분합니다. Git 구성에서 [remote "<your-remote>"] 블록에 다음 fetch 라인을 추가합니다. fetch = +refs/environments