yml file can't start with % symbol in Windows environment

Summary

CI config file can't accept command start with % symbol so that we can't

run command start with variable which contains command path in Windows Environment.

Steps to reproduce

  1. Open Ci-Lint in https://gitlab.com/ci/lint
  2. Parse following .gitlab-ci.yml content
variables:
  NuGet_PATH: 'C:\gitlab-ci\nuget.exe'
  NSIS_PATH: 'C:\installer'
  NSIS_BUILD_PATH: 'C:\installer\_installer'
  NSIS_OUTPUT_PATH: 'C:\installer\_onBuild'
  SOLUTION_NAME: 'Form1.sln'
  GIT_STRATEGY: clone

before_script:
  - echo 'Retrieve NuGet package'
  - %NuGet_PATH% restore ./%SOLUTION_NAME%

after_script:
  - echo 'Cleanup NSIS working directory...'
  - DEL /S /Q %NSIS_BUILD_PATH%
  - DEL /S /Q %NSIS_OUPUT_PATH%

installer_build:
  stage: build
  only:
    - master
  script:
    - msbuild.exe
  artifacts:
    paths:
    - %NSIS_OUTPUT_PATH%
    expire_in: 1 mos
  1. click Validate

Actual behavior

Status: syntax is incorrect 

Error: (<unknown>): found character that cannot start any token while scanning for the next token at line 11 column 5

Expected behavior

Status: syntax is correct

Environment description

  • Using Gitlab.com/ci/lint to validate
  • running GitLab Runner in private environment

Used GitLab Runner version

Version: 9.5.0
Git revision: 413da38
Git branch: 9-5-stable
GO version: go1.8.3
Built: Tue, 22 Aug 2017 13:40:42 +0000
OS/Arch: windows/amd64