GitLab Functions
CI/CD 잡 로직의 재사용 가능한 단위. 잡 스크립트를 함수로 대체하여 재사용성, 버전 관리, 테스트 가능성 향상.
GitLab Functions는 GitLab CI/CD 잡에서 script 를 대체하는 재사용 가능한 CI/CD 잡 로직 단위입니다. Note GitLab Functions는 활발히 개발 중인 실험적 기능으로 breaking changes의 대상이 됩니다. 자세한 내용은 변경 사항 을 검토하세요. 함수를 사용하는 이유 # 파이프라인이 성장하면 script 블록은 유지 관리하기 어려워집니다. 잡 간에 로직이 중복되고, 잡이 런타임에 외부 소스에서 스크립트를 가져오며, 작은 변경 사항이 여러 곳에서 업데이트가 필요합니다. GitLab Functions는 이러한 문제를 해결하기 위해 설계되었습니다. 함수의 장점: 함수는 자체적으로 포함되어 있고 버전 관리됩니다. 함수는 로직, 지원 스크립트 또는 바이너리, 입력과 출력을 설명하는 사양을 패키징하는 OCI 이미지입니다. 스텝이 실행될 때 GitLab이 자동으로 함수를 가져옵니다. 잡 시작 시 스크립트를 가져오거나 외부 의존성을 수동으로 관리할 필요가 없습니다. 특정 버전 태그에서 함수를 참조하면 매번 정확히 그 버전을 얻습니다. 함수는 잡과 프로젝트 간에 재사용 가능합니다. OCI 레지스트리에 함수를 게시하면 모든 잡이 각 저장소에 스크립트 파일을 복사하고 유지 관리하지 않고 단일 func 참조로 함수를 사용할 수 있습니다. 함수는 데이터 흐름을 명시적으로 만듭니다. script 블록에서 값은 임의의 순서로 설정, 덮어쓰기, 읽을 수 있는 셸 변수를 통해 명령 간에 전달됩니다. run 목록에서 각 스텝은 입력과 출력을 선언하며, 스텝은 이미 실행된 스텝의 출력에만 접근할 수 있습니다. 함수는 독립적으로 테스트 가능합니다. 함수가 입력과 출력을 정의하기 때문에 전체 파이프라인을 실행하지 않고도 격리하여 실행하고 테스트할 수 있습니다. 함수 실행은 플랫폼 간에 신뢰할 수 있습니다. 전용 에이전트가 네트워크를 통해 전송된 스크립트를 해석하는 것이 아니라 빌드 호스트에서 함수 실행을 관리합니다. 이는 함수에 적절한 프로세스 제어, 크로스 플랫폼 일관성, 재개 가능한 잡의 기반을 제공합니다. 이러한 기능은 셸 스크립트만으로는 달성하기 어렵거나 불가능합니다. 기존 셸 스크립트를 재사용하려면 script 스텝을 사용하여 점진적으로 마이그레이션하면서 run 목록에서 직접 실행합니다. 모든 것을 한 번에 변환하지 않고도 함수를 사용할 수 있습니다. 함수 이해 # 전통적인 CI/CD 잡에서 script 키워드는 셸 명령 목록을 포함합니다. 잡은 모든 스텝을 소유하고 로직이 YAML에 직접 존재하며, 결과를 달성하는 방법을 정확히 설명합니다. 파이프라인이 성장하면 이 접근 방식은 재사용, 테스트, 프로젝트 간 공유가 어려워집니다. GitLab Functions를 사용하면 run 키워드를 사용하여 스텝 목록을 선언합니다. 각 스텝은 구현을 포함하는 함수를 참조하며, 잡은 방법보다 무엇이 발생해야 하는지를 설명합니다. 로직은 YAML이 아닌 함수에 존재합니다. 다음은 JavaScript 프로젝트의 전통적인 .gitla
