From f5529c471b0e0aa00adda41ff5ea42f21fd228a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82?= <119082735+rp-cloud@users.noreply.github.com> Date: Fri, 17 Jan 2025 19:56:35 +0100 Subject: [PATCH 1/9] Delete azure-pipelines.yml --- azure-pipelines.yml | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 23402e427df..00000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,3 +0,0 @@ -pool: MyAgentPool -steps: -- bash: echo hello world \ No newline at end of file From 8c1359e555eebb596a89d0d67be42f2fc4feec0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82?= <119082735+rp-cloud@users.noreply.github.com> Date: Fri, 17 Jan 2025 19:58:43 +0100 Subject: [PATCH 2/9] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000000..203013b7d9f --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,34 @@ +# ASP.NET Core (.NET Framework) +# Build and test ASP.NET Core projects targeting the full .NET Framework. +# Add steps that publish symbols, save build artifacts, and more: +# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core + +trigger: +- main + +pool: + vmImage: 'windows-latest' + +variables: + solution: '**/*.sln' + buildPlatform: 'Any CPU' + buildConfiguration: 'Release' + +steps: +- task: NuGetToolInstaller@1 + +- task: NuGetCommand@2 + inputs: + restoreSolution: '$(solution)' + +- task: VSBuild@1 + inputs: + solution: '$(solution)' + msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"' + platform: '$(buildPlatform)' + configuration: '$(buildConfiguration)' + +- task: VSTest@2 + inputs: + platform: '$(buildPlatform)' + configuration: '$(buildConfiguration)' From 6ade1ffe043d39210177419f2a83242454697696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82?= <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 17:22:43 +0100 Subject: [PATCH 3/9] Update azure-pipelines.yml --- azure-pipelines.yml | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 203013b7d9f..4defdb0f7bb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,32 +3,4 @@ # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core -trigger: -- main -pool: - vmImage: 'windows-latest' - -variables: - solution: '**/*.sln' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - -- task: NuGetCommand@2 - inputs: - restoreSolution: '$(solution)' - -- task: VSBuild@1 - inputs: - solution: '$(solution)' - msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"' - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' - -- task: VSTest@2 - inputs: - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' From 7d33fd50defa6e73b905c905cc47f5aa298e8b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82?= <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 17:34:03 +0100 Subject: [PATCH 4/9] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4defdb0f7bb..343c4be2f6f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,4 +3,12 @@ # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core +trigger: +- main +pool: + vmImage: ubuntu-latest + + +steps: +- bash: echo hello world From ee9659a703d8289dbdb6c60ef4f52a6b876fff99 Mon Sep 17 00:00:00 2001 From: rp-cloud <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 17:36:53 +0100 Subject: [PATCH 5/9] Add build tasks --- azure-pipelines.yml | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 343c4be2f6f..e688863c143 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,11 +4,45 @@ # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core trigger: -- main +- '*' -pool: +pool: vmImage: ubuntu-latest +variables: + buildConfiguration: 'Release' steps: -- bash: echo hello world +- task: UseDotNet@2 + displayName: 'Use .NET SDK 6.x' + inputs: + packageType: sdk + version: '6.x' + +- task: Npm@1 + displayName: 'Run npm install' + inputs: + verbose: false + +- script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot' + 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: Tailspin.SpaceGame.Web/wwwroot + +- task: DotNetCoreCLI@2 + displayName: 'Restore project dependencies' + inputs: + command: 'restore' + projects: '**/*.csproj' + +- task: DotNetCoreCLI@2 + displayName: 'Build the project - Release' + inputs: + command: 'build' + arguments: '--no-restore --configuration Release' + projects: '**/*.csproj' \ No newline at end of file From 4a5eda1c260f63b9e8a0fe30e55178571cc00c2a Mon Sep 17 00:00:00 2001 From: rp-cloud <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 17:47:51 +0100 Subject: [PATCH 6/9] Add publish tasks --- azure-pipelines.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e688863c143..a6b3241a73b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,14 +9,10 @@ trigger: pool: vmImage: ubuntu-latest -variables: - buildConfiguration: 'Release' - steps: - task: UseDotNet@2 displayName: 'Use .NET SDK 6.x' inputs: - packageType: sdk version: '6.x' - task: Npm@1 @@ -45,4 +41,17 @@ steps: inputs: command: 'build' arguments: '--no-restore --configuration Release' - projects: '**/*.csproj' \ No newline at end of file + projects: '**/*.csproj' + +- task: DotNetCoreCLI@2 + displayName: 'Publish the project - Release' + inputs: + command: 'publish' + projects: '**/*.csproj' + publishWebProjects: false + arguments: '--no-build --configuration Release --output $(Build.ArtifactStagingDirectory)/Release' + zipAfterPublish: true + +- task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: drop' + condition: succeeded() \ No newline at end of file From 2fa22aa26c2e31729aa099b28fec12f74797ecaa Mon Sep 17 00:00:00 2001 From: rp-cloud <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 17:54:13 +0100 Subject: [PATCH 7/9] Refactor common variables --- azure-pipelines.yml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a6b3241a73b..eaec703e22d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,18 +9,23 @@ trigger: pool: vmImage: ubuntu-latest +variables: + buildConfiguration: 'Release' + wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' + dotnetSdkVersion: '6.x' + steps: - task: UseDotNet@2 - displayName: 'Use .NET SDK 6.x' + displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: - version: '6.x' + version: '$(dotnetSdkVersion)' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false -- script: './node_modules/.bin/node-sass Tailspin.SpaceGame.Web/wwwroot --output Tailspin.SpaceGame.Web/wwwroot' +- script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - task: gulp@1 @@ -28,7 +33,7 @@ steps: - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' - workingDirectory: Tailspin.SpaceGame.Web/wwwroot + workingDirectory: $(wwwrootDir) - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' @@ -37,19 +42,19 @@ steps: projects: '**/*.csproj' - task: DotNetCoreCLI@2 - displayName: 'Build the project - Release' + displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' - arguments: '--no-restore --configuration Release' + arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj' - task: DotNetCoreCLI@2 - displayName: 'Publish the project - Release' + displayName: 'Publish the project - $(buildConfiguration)' inputs: command: 'publish' projects: '**/*.csproj' publishWebProjects: false - arguments: '--no-build --configuration Release --output $(Build.ArtifactStagingDirectory)/Release' + arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - task: PublishBuildArtifacts@1 From 489ccc784e3192d4ebc0e18ce1082862cec9746c Mon Sep 17 00:00:00 2001 From: rp-cloud <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 18:13:48 +0100 Subject: [PATCH 8/9] Support build configurations --- azure-pipelines.yml | 20 ++++++-------------- templates/build.yml | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 templates/build.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eaec703e22d..373fe429b9b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,21 +41,13 @@ steps: command: 'restore' projects: '**/*.csproj' -- 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' -- 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 +- template: templates/build.yml + parameters: + buildConfiguration: 'Release' - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' diff --git a/templates/build.yml b/templates/build.yml new file mode 100644 index 00000000000..15ca39ca575 --- /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 \ No newline at end of file From d629591132c83354546c7ff0ec7aa242716a8337 Mon Sep 17 00:00:00 2001 From: rp-cloud <119082735+rp-cloud@users.noreply.github.com> Date: Sat, 18 Jan 2025 18:53:32 +0100 Subject: [PATCH 9/9] Add the build configuration --- azure-pipelines.yml | 58 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 343c4be2f6f..5acfaff5cdd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,11 +4,61 @@ # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core trigger: -- main +- '*' -pool: - vmImage: ubuntu-latest +pool: + vmImage: 'ubuntu-20.04' + demands: + - npm +variables: + buildConfiguration: 'Release' + wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' + dotnetSdkVersion: '6.x' steps: -- bash: echo hello world +- 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' + +- 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 + +- task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: drop' + condition: succeeded()