title: YAML_FILE_ERROR Message: Expected Commands[0] to be of string type:
body: <p>I'm trying to build my project on AWS using CodeBuild. I have placed this buildspec file in the root directory. CodeBuild is able to read the file but it is unable to proceed forward. But I got the following error on CodeBuild. </p>
  
  <p>CodeBuild Log Error:</p>
  
  <pre><code>&gt; [Container] 2020/05/19 08:56:07 Waiting for agent ping 
  &gt; [Container] 2020/05/19 08:56:09 Waiting for DOWNLOAD_SOURCE 
  &gt; [Container] 2020/05/1908:56:14 Phase is DOWNLOAD_SOURCE [Container] 2020/05/19 08:56:14 YAML location is myRepoPath/buildspec.yml [Container] 2020/05/19 08:56:14 Phase complete: DOWNLOAD_SOURCE State: FAILED 
  &gt; [Container] 2020/05/19 08:56:14 Phase context status code: YAML_FILE_ERROR Message: Expected Commands[0] to be of string type: found subkeys instead at line 30, value of the key tag on line 29 might be empty
  </code></pre>
  
  <p>My buildspec.yaml file :</p>
  
  <pre><code>    version: 0.2
  
  phases:
    install:
      runtime-versions:
        java: openjdk11
  
      commands:
        - apt-get update -y
        - apt-get install -y maven
        - pip3 install --upgrade awscli
  
    pre_build:
      commands:
        - sonar_host_url=""
        - sonar_project_key="$REPOSITORY_NAME"
        - sonar_username=$(aws secretsmanager get-secret-value --secret-id $SONARQUBE_USER_CREDENTIAL_SECRET | jq -r '.SecretString' | jq -r '.username')
        - sonar_password=$(aws secretsmanager get-secret-value --secret-id $SONARQUBE_USER_CREDENTIAL_SECRET | jq -r '.SecretString' | jq -r '.password')
        - git checkout $SOURCE_COMMIT
  
    build:
      commands:
        - builStatus=$(mvn install)
        - result=$(mvn clean sonar:sonar -Dsonar.projectKey=$sonar_project_key -Dsonar.host.url=$sonar_host_url -Dsonar.login=$sonar_username -Dsonar.password=$sonar_password)
        - echo $result
  
    post_build:
      commands:
        - echo $buildStatus
        - buildComment=$(echo "Status of project build phase : $buildStatus")
        - aws codecommit post-comment-for-pull-request --pull-request-id $PULL_REQUEST_ID --repository-name $REPOSITORY_NAME --before-commit-id $DESTINATION_COMMIT --after-commit-id $SOURCE_COMMIT --content "$buildComment"
        - sonar_link=$(echo $result | egrep -o "you can browse http://[^, ]+")
        - sonar_task_id=$(echo $result | egrep -o "task\?id=[^ ]+" | cut -d'=' -f2)
  </code></pre>