Status | Authors | Coach | DRIs | Owning Stage | Created |
---|---|---|---|---|---|
proposed | - |
컴포넌트 리포지터리의 개발 워크플로우
요약
이 페이지는 컴포넌트 리포지터리를 생성하는 프로세스를 설명합니다. 프로젝트 생성부터 카탈로그 페이지에 새 릴리스가 표시되는 모든 필요한 단계를 설명합니다.
1. 새 프로젝트 생성
먼저 새 프로젝트를 만들고 README.md
파일을 추가하세요. 이것은 리포지터리가 카탈로그 리소스로 전환되기 위한 예정된 요구 사항입니다.
2. 리포지터리 내부에 컴포넌트 생성
만약 리포지터리에 하나의 컴포넌트만 있을 경우, 루트 디렉터리에서 정의할 수 있습니다. 그렇지 않으면, 컴포넌트를 위한 디렉터리를 만드세요. 자세한 내용은 컴포넌트 리포지터리의 디렉터리 구조를 참조하세요.
이 예시는 루트 디렉터리에서 하나의 컴포넌트를 정의합니다.
template.yml
파일을 만들어서 컴포넌트로 제공하려는 구성을 담아주세요:
spec:
inputs:
stage:
default: test
---
.component-default-job:
image: busybox
stage: $[[ inputs.stage ]]
component-job-1:
extends: .component-default-job
script: echo job 1
component-job-2:
extends: .component-default-job
script: echo job 2
위의 예시 컴포넌트 구성은 파이프라인에 component-job-1
과 component-job-2
두 개의 작업을 추가합니다.
3. CI에서 변경 사항 테스트
저희 컴포넌트에 푸시된 모든 변경 사항을 테스트하기 위해 루트 디렉터리에 .gitlab-ci.yml
을 작성해주세요:
##
# 이 구성은 API에 대한 읽기 전용 액세스 토큰이 'API_TOKEN'이라는 마스크 처리된 CI/CD 변수로 저장되어 있다고 예상합니다.
include:
# 현재 프로젝트와 SHA를 참조하는 미리 정의된 변수를 활용
- component: gitlab.com/$CI_PROJECT_PATH@$CI_COMMIT_SHA
stages: [test, release]
# 모든 `component-job-*` 작업이 추가되었다고 예상
ensure-jobs-added:
image: badouralix/curl-jq
script:
- |
route="https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/pipelines/$CI_PIPELINE_ID/jobs"
count=`curl --silent --header "PRIVATE-TOKEN: $API_TOKEN" $route | jq 'map(select(.name | contains("component-job-"))) | length'`
if [ "$count" != "2" ]; then
exit 1
fi
...
...
이 파이프라인에는 다양한 작업의 예시가 포함되어 있습니다:
- 컴포넌트를 사용하여 최종 구성이 유효한 구문을 사용하는지 확인합니다. 또한, 작업이 필요한 최소 요구 사항을 충족하는지도 확인합니다.
- 생성된 파이프라인이 기대한 특성을 가지고 있는지 테스트합니다.
예를 들어,
component-job-*
작업이 파이프라인에 추가되었는지 확인합니다.-
curl
로 파이프라인 API 엔드포인트를 호출하고jq
를 통해 데이터를 구문 분석합니다. - 이 기술을 사용하여 특정 작업이 포함되었는지, 작업이 올바른 속성이 설정되어 있는지, 또는 로그에 기대한 출력이 포함되어 있는지 등을 확인할 수 있습니다.
-
- 프로젝트 설명이 설정되어 있는지 확인합니다.
- 리포지터리에
README.md
파일이 포함되어 있는지 확인합니다. - 특정 정규식을 따르는 태그를 생성하면 이전 모든 확인 사항이 통과한 후에 릴리스를 자동으로 작성합니다.
4. 파이프라인 실행
이제 main
브랜치를 위해 새 파이프라인을 실행해보세요. 변경을 푸시하거나 파이프라인을 매뉴얼으로 시작할 수 있습니다:
5. 태그 생성
main
용 파이프라인이 성공하면 이제 첫 번째 태그인 v1.0
을 만들 수 있습니다.
v1.0
태그가 만들어지면 새로운 태그 파이프라인이 시작됩니다.
이번에는 파이프라인에 release
단계의 create-release
작업이 추가되어 있습니다:
create-release
작업이 완료되면 릴리스 메뉴에서 새 릴리스를 확인할 수 있어야 합니다:
6. 리포지터리를 카탈로그에 게시
컴포넌트 리포지터리와 새 릴리스가 CI 카탈로그에 표시되도록 하려면 이를 게시해야 합니다.
이 게시를 통해 컴포넌트 리포지터리가 카탈로그 리소스로 만들어집니다.
이 작업의 API 엔드포인트는 개발 중입니다. 더 많은 세부 정보를 보려면 이슈를 확인하세요.