diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 67d861c45..d04411064 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,58 +1,65 @@ trigger: -- '*' - + - '*' + pool: - vmImage: 'ubuntu-20.04' - demands: - - npm - + vmImage: ubuntu-latest + variables: - buildConfiguration: 'Release' - wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' - dotnetSdkVersion: '6.x' - + buildConfiguration: 'Release' + wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' + dotnetSdkVersion: '6.x' + steps: - task: UseDotNet@2 displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: version: '$(dotnetSdkVersion)' - + - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - + - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - + - task: gulp@1 displayName: 'Run gulp tasks' - + - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: $(wwwrootDir) - + - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - + - task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: - command: 'build' - arguments: '--no-restore --configuration $(buildConfiguration)' - projects: '**/*.csproj' - + command: 'build' + arguments: '--no-restore --configuration $(buildConfiguration)' + projects: '**/*.csproj' + - task: DotNetCoreCLI@2 displayName: 'Publish the project - $(buildConfiguration)' inputs: - command: 'publish' - projects: '**/*.csproj' - publishWebProjects: false - arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' - zipAfterPublish: true + command: 'publish' + projects: '**/*.csproj' + publishWebProjects: false + arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' + zipAfterPublish: true + +- template: templates/build.yml + parameters: + buildConfiguration: 'Debug' -- publish: '$(Build.ArtifactStagingDirectory)' - artifact: drop +- template: templates/build.yml + parameters: + buildConfiguration: 'Release' + +- task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: drop' + condition: succeeded() diff --git a/templates/build.yml b/templates/build.yml new file mode 100644 index 000000000..0f876073e --- /dev/null +++ b/templates/build.yml @@ -0,0 +1,19 @@ +parameters: + buildConfiguration: 'Release' + +steps: +- task: DotNetCoreCLI@2 + displayName: 'Build the project - ${{ parameters.buildConfiguration }}' + inputs: + command: 'build' + arguments: '--no-restore --configuration ${{ parameters.buildConfiguration }}' + projects: '**/*.csproj' + +- task: DotNetCoreCLI@2 + displayName: 'Publish the project - ${{ parameters.buildConfiguration }}' + inputs: + command: 'publish' + projects: '**/*.csproj' + publishWebProjects: false + arguments: '--no-build --configuration ${{ parameters.buildConfiguration }} --output $(Build.ArtifactStagingDirectory)/${{ parameters.buildConfiguration }}' + zipAfterPublish: true