Reputation: 1456
I've got a YAML pipeline that is attempting to run multiple jobs, but I'm getting a syntax error for the first task (the GitVesion
command-line task), which I don't get in other pipelines that I've that have a single job.
The error I get is:
(Line: 29, Col: 18, Idx: 576) - (Line: 29, Col: 18, Idx: 576): Mapping values are not allowed in this context.
Line 29 is the displayName
of the first task (actual pipeline has comments at top of the file that have been removed below).
trigger:
- master
pool:
name: NameRedacted
demands: VisualStudio_15.0
variables:
- name: CreateRelease
value: true
- name: PublishPackages
value: true
- name: PublishMyGetPackages
value: true
- name: IntegrationTests_SqlAlias
value: .
- group: 'Common Variables'
jobs:
- job: Backend
steps:
- task: CmdLine@1
displayName: GitVersion
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/*.nupkg'
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.Repository.LocalPath)'
inputs:
SourceFolder: '$(Build.Repository.LocalPath)'
Contents: |
**/*.nupkg
Packages/*.zip
- task: DeleteFiles@1
displayName: 'Delete old test files'
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: '**\*test*.dll'
- task: UseDotNet@2
displayName: 'Use .Net Core SDK 2.2.104'
inputs:
packageType: sdk
version: 2.2.104
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: NameRedacted.sln
restoreArguments: '$(DotNetRestoreSourcesLight)'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: NameRedacted.sln
arguments: '-c Release --no-restore'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: 'test'
projects: |
**/*tests*/*.csproj
!**\*Tests.Common.csproj
!**\*Tests.Common.dll
!**\*TestAdapter.dll
!**\obj\**
!**\netstandard2.0\*.dll
!**\node_modules\**
arguments: '-c Release'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
arguments: '-c $(BuildConfiguration) -o $(Build.ArtifactStagingDirectory) --no-restore'
zipAfterPublish: false
# Octopus packaging and pushing redacted
- job: 'Angular App'
steps:
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/*.nupkg'
- task: DeleteFiles@1
displayName: 'Delete tests '
inputs:
SourceFolder: '$(Parameters.SourceFolder)'
Contents: '**/TESTS-*.xml'
- task: DeleteFiles@1
displayName: 'Delete files from dist'
inputs:
SourceFolder: '$(Parameters.SourceFolder)'
Contents: dist
- task: CmdLine@1
displayName: 'Run $(GitVersionPath)'
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: NodeTool@0
displayName: 'Use Node 10.x'
inputs:
versionSpec: 10.x
- task: Npm@1
displayName: 'npm install windows-build-tools'
inputs:
command: custom
verbose: false
customCommand: 'install --global --production windows-build-tools'
- task: Npm@1
displayName: 'npm install node-sass'
inputs:
command: custom
verbose: false
customCommand: 'install --global --unsafe-perms node-sass'
- task: Npm@1
displayName: Restore
inputs:
workingDir: '$(Parameters.SourceFolder)'
verbose: false
- task: Npm@1
displayName: Build
inputs:
command: custom
workingDir: '$(Parameters.SourceFolder)'
verbose: false
customCommand: 'run ui-prod'
- task: Npm@1
displayName: Test
inputs:
command: custom
workingDir: '$(Parameters.SourceFolder)'
verbose: false
customCommand: 'test --watch=false --single-run=true --reporters=junit,progress --browsers=PhantomJS'
enabled: false
- task: PublishTestResults@2
displayName: 'Publish Test Results **/TESTS-*.xml'
inputs:
testResultsFiles: '**/TESTS-*.xml'
enabled: false
condition: succeededOrFailed()
- task: Npm@1
displayName: Lint
inputs:
command: custom
workingDir: '$(Parameters.SourceFolder)'
verbose: false
customCommand: 'run lint'
enabled: false
# Octopus packaging and pushing redacted
- job: 'Ionic App'
steps:
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/*.nupkg'
- task: DeleteFiles@1
displayName: 'Delete tests'
inputs:
SourceFolder: '$(Parameters.SourceFolder)'
Contents: '**/TESTS-*.xml'
- task: DeleteFiles@1
displayName: 'Delete files from dist'
inputs:
SourceFolder: 'src/ionic-app'
Contents: www
- task: CmdLine@1
displayName: 'Run $(GitVersionPath)'
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: NodeTool@0
displayName: 'Use Node 10.x'
inputs:
versionSpec: 10.x
- task: Npm@1
displayName: 'npm install windows-build-tools'
inputs:
command: custom
verbose: false
customCommand: 'install --global --production windows-build-tools'
- task: Npm@1
displayName: 'npm install node-sass'
inputs:
command: custom
verbose: false
customCommand: 'install --global --unsafe-perms node-sass'
- task: Npm@1
displayName: 'npm install ionic'
inputs:
command: custom
verbose: false
customCommand: 'install --global ionic'
- task: Npm@1
displayName: Restore
inputs:
workingDir: 'src/ionic-app'
verbose: false
- task: Npm@1
displayName: Build
inputs:
command: custom
workingDir: 'src/ionic-app'
verbose: false
customCommand: 'run build-web-prod'
# Octopus packaging and pushing redacted
- job: Release
dependsOn:
- Backedn
- 'Angular App'
- 'Ionic App'
steps:
- task: CmdLine@1
displayName: 'Run $(GitVersionPath)'
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['CreateRelease'],'true'), ne(variables['Build.Reason'], 'Schedule'))
# Octopus release creating redacted
Upvotes: 3
Views: 2536
Reputation: 41755
You have 3 issues:
displayName
should be aligned with the task
.inputs
should be in right to inputs
and not aligned.job
names couldn't be with spaces.I fixed it for you, this is correct:
trigger:
- master
pool:
name: NameRedacted
demands: VisualStudio_15.0
variables:
- name: CreateRelease
value: true
- name: PublishPackages
value: true
- name: PublishMyGetPackages
value: true
- name: IntegrationTests_SqlAlias
value: .
- group: 'Common Variables'
jobs:
- job: Backend
steps:
- task: CmdLine@1
displayName: GitVersion
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/Naus*.nupkg'
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.Repository.LocalPath)'
inputs:
SourceFolder: '$(Build.Repository.LocalPath)'
Contents: |
**/*.nupkg
Packages/*.zip
- task: DeleteFiles@1
displayName: 'Delete old test files'
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: '**\*test*.dll'
- task: UseDotNet@2
displayName: 'Use .Net Core SDK 2.2.104'
inputs:
packageType: sdk
version: 2.2.104
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: NameRedacted.sln
restoreArguments: '$(DotNetRestoreSourcesLight)'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: NameRedacted.sln
arguments: '-c Release --no-restore'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: 'test'
projects: |
**/*tests*/*.csproj
!**\*Tests.Common.csproj
!**\*Tests.Common.dll
!**\*TestAdapter.dll
!**\obj\**
!**\netstandard2.0\*.dll
!**\node_modules\**
arguments: '-c Release'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
arguments: '-c $(BuildConfiguration) -o $(Build.ArtifactStagingDirectory) --no-restore'
zipAfterPublish: false
# Octopus packaging and pushing redacted
- job: AngularApp
steps:
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/*.nupkg'
- task: DeleteFiles@1
displayName: 'Delete tests '
inputs:
SourceFolder: '$(Parameters.SourceFolder)'
Contents: '**/TESTS-*.xml'
- task: DeleteFiles@1
displayName: 'Delete files from dist'
inputs:
SourceFolder: '$(Parameters.SourceFolder)'
Contents: dist
- task: CmdLine@1
displayName: 'Run $(GitVersionPath)'
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: NodeTool@0
displayName: 'Use Node 10.x'
inputs:
versionSpec: 10.x
- task: Npm@1
displayName: 'npm install windows-build-tools'
inputs:
command: custom
verbose: false
customCommand: 'install --global --production windows-build-tools'
- task: Npm@1
displayName: 'npm install node-sass'
inputs:
command: custom
verbose: false
customCommand: 'install --global --unsafe-perms node-sass'
- task: Npm@1
displayName: Restore
inputs:
workingDir: '$(Parameters.SourceFolder)'
verbose: false
- task: Npm@1
displayName: Build
inputs:
command: custom
workingDir: '$(Parameters.SourceFolder)'
verbose: false
customCommand: 'run ui-prod'
- task: Npm@1
displayName: Test
inputs:
command: custom
workingDir: '$(Parameters.SourceFolder)'
verbose: false
customCommand: 'test --watch=false --single-run=true --reporters=junit,progress --browsers=PhantomJS'
enabled: false
- task: PublishTestResults@2
displayName: 'Publish Test Results **/TESTS-*.xml'
inputs:
testResultsFiles: '**/TESTS-*.xml'
enabled: false
condition: succeededOrFailed()
- task: Npm@1
displayName: Lint
inputs:
command: custom
workingDir: '$(Parameters.SourceFolder)'
verbose: false
customCommand: 'run lint'
enabled: false
# Octopus packaging and pushing redacted
- job: IonicApp
steps:
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/Naus*.nupkg'
- task: DeleteFiles@1
displayName: 'Delete tests'
inputs:
SourceFolder: '$(Parameters.SourceFolder)'
Contents: '**/TESTS-*.xml'
- task: DeleteFiles@1
displayName: 'Delete files from dist'
inputs:
SourceFolder: 'src/ionic-app'
Contents: www
- task: CmdLine@1
displayName: 'Run $(GitVersionPath)'
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: NodeTool@0
displayName: 'Use Node 10.x'
inputs:
versionSpec: 10.x
- task: Npm@1
displayName: 'npm install windows-build-tools'
inputs:
command: custom
verbose: false
customCommand: 'install --global --production windows-build-tools'
- task: Npm@1
displayName: 'npm install node-sass'
inputs:
command: custom
verbose: false
customCommand: 'install --global --unsafe-perms node-sass'
- task: Npm@1
displayName: 'npm install ionic'
inputs:
command: custom
verbose: false
customCommand: 'install --global ionic'
- task: Npm@1
displayName: Restore
inputs:
workingDir: 'src/naus-residents-app'
verbose: false
- task: Npm@1
displayName: Build
inputs:
command: custom
workingDir: 'src/naus-residents-app'
verbose: false
customCommand: 'run build-web-prod'
# Octopus packaging and pushing redacted
- job: Release
dependsOn:
- Backedn
- 'Angular App'
- 'Ionic App'
steps:
- task: CmdLine@1
displayName: 'Run $(GitVersionPath)'
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['CreateRelease'],'true'), ne(variables['Build.Reason'], 'Schedule'))
# Octopus release creating redacted
Upvotes: 2
Reputation: 8606
I believe your displayName
key(s) should be aligned with the first character of your task
key(s) ala:
- job: Backend
steps:
- task: CmdLine@1
displayName: GitVersion
inputs:
filename: '$(GitVersionPath)'
arguments: '$(GitVersionArguments)'
- task: DeleteFiles@1
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)'
Contents: '**/Naus*.nupkg'
Upvotes: 2