Moa 표현식 언어
GitLab Functions에서 사용되는 표현식 언어. 문자열 조작, 산술, 비교, 논리 연산, 속성 접근, 함수 호출 지원.
Moa는 잡 실행 중에 동적으로 값을 구성하기 위한 표현식 언어입니다. 표현식은 ${{ }} 구분자로 둘러싸이며 GitLab Functions와 Job inputs에서 사용됩니다. Moa는 문자열 조작, 산술, 비교, 논리 연산, 속성 접근, 함수 호출을 지원합니다. CI/CD 표현식과의 차이점 # GitLab에는 파이프라인 생명 주기의 다른 단계에서 다른 목적을 제공하는 세 가지 표현식 구문이 있습니다. Rules 는 잡 포함을 제어하기 위해 rules: 키워드 내에서 자체 표현식 구문을 사용합니다. 파이프라인 생성 중에 평가되며 CI/CD 변수에 대한 비교와 패턴 매칭을 지원하지만 산술을 수행하거나 런타임 상태에 접근할 수 없습니다. CI/CD 표현식은 $[[ ]] 구문을 사용하며 잡이 실행되기 전 파이프라인 생성 중에 평가됩니다. 이 표현식은 CI/CD 입력값 , 매트릭스 값 , 컴포넌트 입력값 에 대한 값 대체를 수행합니다. 산술, 비교, 로직을 수행할 수 없으며 런타임 상태에 접근할 수 없습니다. 자세한 내용은 CI/CD 표현식 을 참조하세요. Moa는 ${{ }} 구문을 사용하며 러너에 의해 잡 실행 중에 평가됩니다. Moa는 연산자, 데이터 구조, 함수 호출을 갖춘 완전한 표현식 언어입니다. 세 가지 구문 모두 동일한 파이프라인에 공존할 수 있습니다. GitLab Functions를 포함하는 CI/CD 컴포넌트는 세 가지 모두를 사용할 수 있습니다: spec: inputs: echo_version: type: string --- hi-job: # rules expression - evaluated when the pipeline is created rules: - if: $CI_COMMIT_BRANCH == "main" run: - name: say_hi # $[[ ]] - resolved when the pipeline is created step: registry.gitlab.com/gitlab-org/ci-cd/runner-tools/gitlab-functions-examples/echo@$[[ inputs.echo_version ]] inputs: # ${{ }} - resolved when the job runs message: "Hello, $ {{ vars.CI_PROJECT_NAME }} " Moa는 파이프라인 생성 시점에 사용할 수 없는 기능이 GitLab Functions에 필요하기 때문에 별도의 언어로 존재합니다: 런타임 평가: 스텝 출력은 함수가 실행될 때까지 존재하지 않습니다. ${{ steps.build.outputs.image_ref }} 와 같은 표현식은 실행 중에만 평가할 수 있습니다. 타입 값: Moa는 기본 타입(숫자, 불리언, 배열, 객체)을 보존하고 문자열로 변환하지 않고 함수 간에 전달합니다. 연산자와 로직: GitLab Functions는 스텝 입력값을 변수와 출력값으로 구성하기 위해 산술( major_version + 1 ), 비교( vulnerabilities == 0 ), 단락
