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