문서 배포
GitLab v19.1GitLab 문서 사이트는 GitLab Pages로 호스팅되는 정적 사이트입니다. 이 웹사이트는 지원되는 GitLab 버전의 문서만 호스팅합니다. 이전 버전의 문서는 다음 위치에서 확인할 수 있습니다: 온라인: GitLab Docs Archives
배포 환경#
GitLab 문서 사이트는 GitLab Pages로 호스팅되는 정적 사이트입니다. 배포는 Pages 배포 job에서 처리됩니다.
이 웹사이트는 지원되는 GitLab 버전의 문서만 호스팅합니다.
이전 버전의 문서는 다음 위치에서 확인할 수 있습니다:
-
온라인: GitLab Docs Archives
-
오프라인 또는 Self-managed 사용: GitLab Docs Archives에서 다운로드 가능한 Docker 패키지 형태로 제공
릴리즈 프로세스 구성 요소#
문서 릴리즈 프로세스는 다음 요소들로 구성됩니다:
-
머지 리퀘스트:
main및 관련 안정 브랜치에 변경 사항을 적용합니다. -
파이프라인: 다음을 수행합니다.
Hugo를 사용하여 문서를 빌드합니다.
-
GitLab Pages에 배포합니다.
-
테스트 및 빌드에 사용되는 Docker 이미지를 빌드합니다.
-
빌드 환경에 사용되는
docs-gitlab-com컨테이너 레지스트리의 Docker 이미지
안정 브랜치#
각 GitLab 릴리즈마다 문서 프로젝트에 안정 브랜치(예: 17.2)가 생성됩니다.
이 브랜치는 포함된 프로젝트들의 해당 안정 브랜치에서 콘텐츠를 가져옵니다:
-
gitlab프로젝트의 안정 브랜치 (예:17-2-stable-ee) -
gitlab-runner프로젝트의 안정 브랜치 (예:17-2-stable) -
omnibus-gitlab프로젝트의 안정 브랜치 (예:17-2-stable) -
charts/gitlab프로젝트의 안정 브랜치 (예:7-2-stable)charts/gitlab버전은 GitLab 버전에 매핑됩니다. -
gitlab-org/cloud-native/gitlab-operator의 기본 브랜치 -
cli프로젝트의 기본 브랜치
Technical Writing 팀이 docs-gitlab-com 프로젝트의 안정 브랜치를 생성하며, 이는 다른 팀에서 생성한 안정 브랜치를 활용합니다.
안정 문서#
docs-gitlab-com의 안정 브랜치를 타깃으로 하는 머지 리퀘스트가 병합되면,
파이프라인이 Hugo를 사용하여 문서를 빌드하고 병렬 배포로 배포합니다.
문서는 다음 위치에서 호스팅됩니다:
-
현재 안정 버전과 이전 마이너 버전 2개는
docs.gitlab.com/VERSION/에서 제공 -
이전 버전은
archives.docs.gitlab.com/VERSION/에서 제공
새 마이너 버전이 릴리즈되면, docs.gitlab.com에서 가장 오래된 버전이 archives.docs.gitlab.com으로 이전됩니다.
각 파이프라인의 image:docs-single
job이 자동으로 실행됩니다. 빌드된 결과물을 가져와 빌드 및 테스트 환경에서 사용할 수 있도록
아카이브 컨테이너 레지스트리에 푸시합니다.
안정 문서 이미지 재빌드#
안정 문서 이미지를 재빌드하려면, 재빌드할 안정 브랜치에 대해 새 파이프라인을 생성합니다. 재빌드가 필요한 경우는 다음과 같습니다:
-
업스트림 안정 브랜치의 새로운 문서 변경 사항을 포함하기 위해. 예를 들어,
gitlab프로젝트의17-9-stable-ee브랜치에 이후 병합된 변경 사항을 포함하도록17.9문서를 재빌드합니다. -
docs-gitlab-com프로젝트 자체에서 안정 브랜치에 적용된 변경 사항을 반영하기 위해. 예를 들어, CSS 스타일 변경 사항.
최신 문서#
최신(출시 예정 및 미릴리즈) 문서는 docs-gitlab-com의 기본 브랜치(main)에서 빌드되어 docs.gitlab.com에 배포됩니다.
프로세스는 다음과 같습니다:
- 사이트 빌드 (
build:compile_sitejob):
업스트림 프로젝트(gitlab, gitlab-runner, omnibus-gitlab, gitlab-operator, charts)의 기본 브랜치에서 콘텐츠를 가져옵니다.
-
Hugo를 사용하여 사이트를 컴파일합니다.
-
사이트 배포 (
pagesjob):
컴파일된 사이트를 가져옵니다.
- GitLab Pages를 통해
docs.gitlab.com에 배포합니다.
graph LR
A["Default branches
of upstream projects"]
B["build:compile_site job"]
C["pages job"]
D([docs.gitlab.com])
A--"Content pulled"-->B
B--"Compiled site"-->C
C--"Deployed with
GitLab Pages"-->D
프로세스는 기본 브랜치에 변경 사항이 병합되면 자동으로 실행됩니다.
이를 통해 docs.gitlab.com은 출시 예정 릴리즈의 최신 문서를 항상 표시합니다.
Docker 이미지는 빌드 프로세스에서 사용되지만, 문서 서빙이 아닌 빌드 환경의 일부로만 사용됩니다.
Pages 배포 job#
모든 문서 버전의 배포는 두 개의 GitLab Pages job에서 처리됩니다:
pagesjob:
출시 예정인 미릴리즈 버전을 docs.gitlab.com에 배포합니다.
-
기본 브랜치(
main)의 파이프라인에 의해 트리거됩니다. -
build:compile_sitejob에서 컴파일된 사이트를 가져옵니다. -
pages-archivesjob:
안정 버전을 배포합니다:
현재 안정 버전과 이전 마이너 버전 2개를 docs.gitlab.com/VERSION/에 배포합니다.
-
이전 버전은
gitlab-docs-archives프로젝트를 사용하여archives.docs.gitlab.com/VERSION/에 배포합니다. -
build:compile_archivejob에서 컴파일된 사이트를 가져옵니다.
graph LR A["build:compile_site job"] B["build:compile_archive job"] C["pages job"] D["pages-archives job"] E([docs.gitlab.com]) F([docs.gitlab.com/VERSION/]) G([archives.docs.gitlab.com/VERSION/]) A--"Compiled site"-->C B--"Compiled site"-->D C--"Deploys upcoming version"-->E D--"Deploys current stable and two previous versions"-->F D--"Deploys earlier versions"-->G
예를 들어, pages job을 포함하는 파이프라인을 참고하세요.
프로덕션에 수동 배포#
변경 사항이 적절한 브랜치에 병합되면 문서는 자동으로 프로덕션에 배포됩니다. 그러나 Maintainer 권한이 있는 사용자는 필요한 경우 배포를 수동으로 트리거할 수 있습니다:
-
Pipeline schedules 페이지로 이동합니다.
-
Build docs.gitlab.com every hour옆의 Run schedule pipeline ( 재생 )을 선택합니다.
업데이트된 문서는 새 파이프라인에서 pages 및 pages:deploy job이 완료된 후 프로덕션에서 확인할 수 있습니다.
이 작업을 수행할 Maintainer 권한이 없는 경우, #docs Slack 채널에서 도움을 요청하세요.
Docker 파일#
dockerfiles 디렉터리에는
https://docs.gitlab.com을 빌드, 테스트, 배포하는 데 필요한 Dockerfile이 포함되어 있습니다.