Support local for local file include for inputs

As part of being able to include inputs defined in a different yaml file inside a same project, we want to support local keyword in spec:include: as defined follows:

Inputs defined in another yaml (ci/inputs.yml) file:

inputs:
  environment:
    default: "staging"
    options: ["development", "staging", "production"]
  app_version:
    default: "1.0.0"
  replicas:
    type: number
    default: 3

Using the same file in the main .gitlab-ci.yml file:

spec:
  include:
    - local: '/ci/inputs.yml'
  inputs:
    job_prefix:
      description: "Prefix for job names (inline)"
      default: "inline"
    environment:
      default: "production"  # This should override external
---


$[[ inputs.job_prefix ]]-test:
  script:
    - echo "Environment (should be inline-production):" $[[ inputs.environment ]]
    - echo "Job prefix (inline only):" $[[ inputs.job_prefix ]]
    - echo "App version (from external):" $[[ inputs.app_version ]]
    - echo "Replicas (from external):" $[[ inputs.replicas ]]

POC MR for this feature support: !197684 (closed)

Edited by Rajendra Kadam