Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 31 additions & 8 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,71 @@ trigger:
- '*'

pool:
vmImage: 'ubuntu-20.04'
demands:
- npm
vmImage: 'ubuntu-latest'

variables:
buildConfiguration: 'Release'
wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot'
dotnetSdkVersion: '6.x'
dotnetSdkVersion: '8.x'

steps:
# 🧩 Use .NET 8 SDK
- task: UseDotNet@2
displayName: 'Use .NET SDK $(dotnetSdkVersion)'
inputs:
packageType: 'sdk'
version: '$(dotnetSdkVersion)'

- task: Npm@1
displayName: 'Run npm install'
# 🧩 Use Node.js 18 LTS (stable for npm builds)
- task: NodeTool@0
displayName: 'Use Node.js 18 LTS'
inputs:
verbose: false
versionSpec: '18.x'

# 🧩 Install NPM dependencies
- script: |
npm cache clean --force
npm install --legacy-peer-deps
displayName: 'Install npm dependencies'

# 🧩 Compile Sass assets
- script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)'
displayName: 'Compile Sass assets'

- task: gulp@1
# 🧩 Run Gulp tasks
- task: Gulp@1
displayName: 'Run gulp tasks'

# 🧩 Write build info
- script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt'
displayName: 'Write build info'
workingDirectory: $(wwwrootDir)

# 🧩 Restore project dependencies
- task: DotNetCoreCLI@2
displayName: 'Restore project dependencies'
inputs:
command: 'restore'
projects: '**/*.csproj'

# 🧩 Build the project
- task: DotNetCoreCLI@2
displayName: 'Build the project - $(buildConfiguration)'
inputs:
command: 'build'
arguments: '--no-restore --configuration $(buildConfiguration)'
projects: '**/*.csproj'

# 🧩 Run unit tests (optional)
- task: DotNetCoreCLI@2
displayName: 'Run unit tests - $(buildConfiguration)'
inputs:
command: 'test'
arguments: '--no-build --configuration $(buildConfiguration)'
publishTestResults: true
projects: '**/*.Tests.csproj'

# 🧩 Publish the project
- task: DotNetCoreCLI@2
displayName: 'Publish the project - $(buildConfiguration)'
inputs:
Expand All @@ -54,6 +76,7 @@ steps:
arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)'
zipAfterPublish: true

# 🧩 Publish build artifacts
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
condition: succeeded()