문서 배포

배포 환경

GitLab 문서 사이트GitLab Pages에 의해 호스팅되는 정적 사이트입니다. 배포는 Pages deploy job에 의해 수행됩니다.

웹사이트는 현재 지원되는 문서만을 호스팅합니다. 이전 버전의 문서는 Docker 이미지로 빌드되어 GitLab Docs 아카이브에서 다운로드할 수 있습니다.

릴리스 프로세스의 구성 요소

문서 릴리스 프로세스는 다음과 같은 작업을 수반합니다:

  • 변경 사항을 main 및 관련된 안정적 브랜치에 반영하기 위한 병합 요청.
  • 안정적인 브랜치에 대해 Docker 이미지를 빌드하고 배포하기 위한 파이프라인.
  • 안정 버전 및 최신 문서를 비롯한 온라인 문서의 빌드 및 배포에 사용되는 Docker 이미지.

문서 배포는 다음과 같은 의존성을 갖습니다:

  • 최신 문서의 파이프라인 및 이미지는 안정적 문서의 파이프라인 및 이미지에 의존합니다.
  • 페이지 배포 파이프라인은 최신 문서 이미지에 의존합니다(이는 안정적인 파이프라인 및 이미지에 의존합니다.)

CI/CD 파이프라인에서 Docker를 사용하는 일반 정보는 Docker 통합을 참조하세요.

안정적 브랜치

문서 프로젝트의 안정적 브랜치에 대한 파이프라인은 포함된 프로젝트의 관련 안정적 브랜치를 가져옵니다. 예를 들어, 안정 버전 14.4의 문서는 gitlab-docs 프로젝트의 14.4 브랜치에서 빌드되며, 이 브랜치는 다음을 포함합니다:

  • gitlab 프로젝트의 14-4-stable-ee 브랜치.
  • gitlab-runner 프로젝트의 14-4-stable 브랜치.
  • omnibus-gitlab 프로젝트의 14-4-stable 브랜치.
  • charts/gitlab 프로젝트의 5-4-stable 브랜치. charts/gitlab 버전은 GitLab 버전에 매핑됩니다.

기술 문서 팀은 gitlab-docs 프로젝트의 안정 브랜치를 생성하며, 이는 다른 팀이 생성한 안정 브랜치를 활용합니다.

안정적 문서

gitlab-docs의 안정적 브랜치를 대상으로 병합 요청이 병합되면, 해당 안정적 문서가 빌드되어 레지스트리에 배포됩니다. 예를 들면:

특히, 각 파이프라인에서 image:docs-single 작업이 자동으로 실행됩니다. 빌드된 내용이 생성되어, 컨테이너 레지스트리로 푸시됩니다.

graph TD A["14.4 MR 병합됨"] B["14.3 MR 병합됨"] C["14.2 MR 병합됨"] D["13.12 MR 병합됨"] E["12.10 MR 병합됨"] F{{"gitlab-docs 프로젝트의 컨테이너 레지스트리"}} A--"image:docs-single<br>작업 실행 및<br>gitlab-docs:14.4 이미지 푸시"-->F B--"image:docs-single<br>작업 실행 및<br>gitlab-docs:14.3 이미지 푸시"-->F C--"image:docs-single<br>작업 실행 및<br>gitlab-docs:14.2 이미지 푸시"-->F D--"image:docs-single<br>작업 실행 및<br>gitlab-docs:13.12 이미지 푸시"-->F E--"image:docs-single<br>작업 실행 및<br>gitlab-docs:12.10 이미지 푸시"-->F

안정적인 설명 이미지 재구축하기

안정적인 설명 이미지 중 하나를 재구축하려면, 다음을 수행하세요: 새 파이프라인을 생성하여 재구축할 이미지의 안정적인 브랜치에 대한 파이프라인을 생성합니다. 다음을 수행할 수 있습니다:

  • 상류 안정 브랜치에서 새로운 설명 변경 사항을 안정 버전 도커 이미지에 포함하기 위해, 예를 들어 14.4 도커 이미지를 gitlab 프로젝트의 14-4-stable-ee 브랜치에 이후 병합된 변경 사항을 포함하여 재구축합니다.
  • 안정 브랜치에 있는 gitlab-docs 프로젝트의 변경 사항을 통합하기 위해, 예를 들어:

최신 설명

다음을 포함하는 도커 이미지(latest로 태그 지정):

  • 온라인 버전의 최신 설명.
  • 상류 프로젝트의 안정 브랜치에서의 설명.

image:docs-latest 작업:

  • 관련 상류 프로젝트의 기본 브랜치에서 최신 설명을 가져옵니다.
  • image:docs-single 작업에 의해 이전에 빌드된 도커 이미지를 가져옵니다.
  • 예약된 파이프라인에서 수동으로 실행해야 합니다.

예를 들어, image:docs-latest 작업이 포함된 파이프라인:

그래플램 A["최신 gitlab, gitlab-runner<br>omnibus-gitlab, and charts"] subgraph "gitlab-docs 프로젝트의 컨테이너 레지스트리" B["14.4 버전 설명<br>gitlab-docs:14.4"] C["14.3 버전 설명<br>gitlab-docs:14.3"] D["14.2 버전 설명<br>gitlab-docs:14.2"] E["13.12 버전 설명<br>gitlab-docs:13.12"] F["12.10 버전 설명<br>gitlab-docs:12.10"] end G[["예약된 파이프라인<br>image:docs-latest job<br>이들을 모두 결합시킴"]] A--"기본 브랜치로부터<br>내려받음"-->G B--"gitlab-docs:14.4 이미지<br>내려받음"-->G C--"gitlab-docs:14.3 이미지<br>내려받음"-->G D--"gitlab-docs:14.2 이미지<br>내려받음"-->G E--"gitlab-docs:13.12 이미지<br>내려받음"-->G F--"gitlab-docs:12.10 이미지<br>내려받음"-->G H{{"gitlab-docs 프로젝트의 컨테이너 레지스트리"}} G--"최신 gitlab-docs:latest 이미지<br>올림"-->H

페이지 배포 작업

GitLab Docs페이지 사이트이며, 이를 위한 문서 업데이트는 사용 가능하게 배포되어야 합니다.

pages 작업은 기본 브랜치(main)에서 파이프라인이 실행될 때 자동으로 실행됩니다. 이는 다음을 결합하도록 필요한 명령을 실행합니다:

  • 최신 빌드의 gitlab-docs 사이트 코드.
  • 상류 프로젝트의 기본 브랜치에서의 최신 설명.
  • image:docs-latest에서의 설명.

예를 들어, pages 작업이 포함된 파이프라인:

그래플램 A{{"gitlab-docs 프로젝트의 컨테이너 레지스트리"}} B[["예약된 파이프라인<br>`pages` and<br>`pages:deploy` 작업"]] C([docs.gitlab.com]) A--"gitlab-docs:latest<br>내려받음"-->B B--"확장된 문서 업로드됨"-->C

수동으로 프로덕션에 배포

Build docs.gitlab.com every hour 예약 파이프라인이 실행될 때마다 GitLab Docs가 프로덕션에 배포됩니다. 기본적으로 이 파이프라인은 매 시간 실행됩니다.

관리자는 이 작업을 수동으로 실행하여 프로덕션에 배포를 강제로 수행할 수 있습니다:

  1. gitlab-docs에 대한 예약된 파이프라인으로 이동합니다.
  2. Build docs.gitlab.com every hour 옆에 있는 재생 ()을 선택합니다.

업데이트된 문서는 새로운 파이프라인에서 pagespages:deploy 작업이 완료된 후 프로덕션에서 사용할 수 있습니다.

이 작업을 수행하려면 관리자 역할이 없는 경우 #docs Slack 채널에서 도움을 요청하세요.

Docker 파일

dockerfiles 디렉토리에는 https://docs.gitlab.com를 빌드, 테스트 및 배포하는 데 필요한 Dockerfile이 포함되어 있습니다.