RSS GitLab
팔로우
CI/CD 입력: 파이프라인에 매개변수를 전달하는 안전하고 선호되는 방법
GitLab CI/CD Inputs는 파이프라인 매개변수 전달을 위한 현대적인 솔루션으로, 타입이 지정되고 유효성 검사가 이루어지며 명확한 계약을 제공합니다. 원래 설정 목적으로 사용되었던 전통적인 CI/CD 변수는 문자열만 허용하는 특성과 런타임 시 변경 가능성 때문에 신뢰성과 보안 문제를 야기합니다. Inputs는 타입 안전성을 보장하고, 예기치 않은 오류를 방지하며, 변수 충돌을 완화함으로써 이러한 문제를 해결합니다.변수는 타입 유효성 검사가 없기 때문에 숫자나 부울 값을 기대하면서 문자열을 받으면 런타임 오류가 발생합니다. 또한 런타임 중에 변경 가능하여 여러 작업이 동일한 변수를 수정할 때 예측 불가능한 동작을 유발합니다. 더 나아가, 변수는 민감한 비밀과 동일한 접근 권한을 상속받는 경우가 많아 명확한 구분이 없어 보안 위험을 초래할 수 있습니다.변수를 사용하면 오류 감지가 늦어져 CI/CD 리소스와 개발자 시간을 낭비하는 경우가 많습니다. 변수의 신뢰성을 확보하기 위해서는 복잡한 해결책이 필요합니다. 외부 시스템에 의존하기 때문에 로컬 디버깅도 어렵습니다.GitLab에서 변수의 우선순위는 특히 다양한 프로젝트에서 재사용 가능한 파이프라인 구성요소와 함께 사용될 때 예측 불가능한 동작을 초래할 수 있습니다. 이러한 복잡성 때문에 템플릿 작성자를 위한 광범위한 문서화가 필요합니다. 반면 Inputs는 파이프라인 생성 시점에 평가되므로 작업 이름과 같은 다양한 구성 요소에서 보간(interpolation)이 가능합니다.이 기능은 재사용 가능한 구성 요소를 여러 번 포함할 때 작업 이름 충돌을 방지합니다. Inputs는 다양한 값 타입을 지원하며 파이프라인 생성 시점에 유효성 검사를 수행하여 실행 전에 타입 불일치가 있는 파이프라인을 거부합니다. 이는 변수에서 흔히 발생하는 지연된 오류와 달리 즉각적인 피드백을 제공합니다.Inputs는 명시적인 매개변수 기대를 정의하고 한 번 설정되면 변경할 수 없도록 함으로써 보안을 강화합니다. 이는 매개변수 전달에 대한 명확한 경계를 설정하여 전반적인 파이프라인의 견고성과 유지 관리성을 향상시킵니다. Inputs로 전환하면 CI/CD 워크플로우의 신뢰성과 효율성이 향상됩니다.