Skip to content
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

[![Build Status](https://dev.azure.com/appdev-upskilling-fy26/daryl.b.sardon/_apis/build/status%2FdarsAcn.mslearn-tailspin-spacegame-web?branchName=main)](https://dev.azure.com/appdev-upskilling-fy26/daryl.b.sardon/_build/latest?definitionId=84&branchName=main)
# Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Expand Down Expand Up @@ -63,3 +63,4 @@ Privacy information can be found at https://privacy.microsoft.com/en-us/

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents,
or trademarks, whether by implication, estoppel or otherwise.

2 changes: 1 addition & 1 deletion Tailspin.SpaceGame.Web/Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<section class="intro">
<div class="container">
<img class="title" src="/images/space-game-title.svg" alt="Space Game">
<p>An example site for learning</p>
<p>Welcome to the official Space Game site!</p>
</div>
</section>
<section class="download">
Expand Down
83 changes: 81 additions & 2 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,82 @@
pool: MyAgentPool
trigger:
- '*'

pool:
vmImage: ubuntu-latest

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

steps:
- bash: echo hello world
# ✅ Use Node 18 LTS
- task: UseNode@1
displayName: 'Use Node.js 18 LTS'
inputs:
version: '18.x'

# ✅ Install dependencies safely
- 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'

# ✅ Run Gulp tasks
- task: Gulp@1
displayName: 'Run Gulp tasks'

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

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

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

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

- template: templates/build.yml
parameters:
buildConfiguration: 'Debug'

- template: templates/build.yml
parameters:
buildConfiguration: 'Release'

# ✅ Publish the .NET project
- 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

# ✅ Publish artifacts
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
condition: succeeded()
19 changes: 19 additions & 0 deletions templates/build.yml
Original file line number Diff line number Diff line change
@@ -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