InfoGrab DocsInfoGrab Docs

GitLab Function 생성

func.yml 파일을 사용하여 GitLab Function을 정의하고, 입력/출력 spec 작성부터 exec·run 구현, OCI 이미지 빌드 및 배포 방법까지 설명합니다.

Status: Experiment GitLab Function은 함수의 인터페이스와 구현을 정의하는 func.yml 파일이 포함된 디렉터리입니다. 함수는 로컬에서 실행하거나 job과 프로젝트 전반에 걸쳐 재사용할 수 있도록 OCI 레지스트리에 게시할 수 있습니다. CI/CD job에서 함수를 사용하는 방법에 대한 자세한 내용은 GitLab Functions 를 참조하세요. 함수 예시는 GitLab Functions 예시 를 참조하세요. 함수 구조 # 함수는 최소한 func.yml 파일과 구현에 필요한 지원 파일들을 포함하는 디렉터리입니다: my-function/ ├── func.yml └── my-script.sh func.yml 파일에는 --- 로 구분된 두 개의 YAML 문서가 포함됩니다: 함수의 입력과 출력을 정의하는 spec, 그리고 함수가 수행하는 작업을 설명하는 definition입니다. # Document 1: spec spec: inputs: message: type: string outputs: result: type: string --- # Document 2: definition exec: command: ["${{ func_dir }}/my-script.sh", "${{ inputs.message }}"] Spec: 입력과 출력 선언 # spec은 함수의 인터페이스를 설명합니다. 입력 # 각 입력에는 type 이 필요합니다. default 값이 있는 입력은 선택 사항입니다. 기본값이 없는 입력은 호출자가 반드시 제공해야 합니다. 입력 이름은 영숫자와 밑줄만 사용할 수 있으며 숫자로 시작할 수 없습니다. 입력은 다음 타입 중 하나여야 합니다: 타입 예시 설명 array ["a","b"] 타입이 지정되지 않은 항목의 목록 boolean true 참 또는 거짓 number 56.77 64비트 부동소수점 string "brown cow" 텍스트 struct {"k1":"v1","k2":"v2"} 구조화된 콘텐츠 예시: spec: inputs: # Required string input message: type: string # Optional input with a default count: type: number default: 1 # Struct input for passing structured data config: type: struct default: {} 출력 # 출력은 함수가 이후 단계로 반환하는 값을 정의합니다. 각 출력에는 type 이 필요합니다. default 값이 있는 출력은 선택 사항입니다. 함수가 출력 값을 작성하지 않으면 기본값이 사용됩니다. 출력은 입력과 동일한 타입과 명명 규칙을 사용합니다. 예시: spec: outputs: # Required string output artifact_path: type: string # Optional output with a default compressed: type: boolean default: false 런타임에 함수는 ${{ output_file