From 767da0b47fc64e9eb9a714579bfd7f3947f9fd64 Mon Sep 17 00:00:00 2001 From: Gokulck007 <137037494+Gokulck007@users.noreply.github.com> Date: Wed, 15 Nov 2023 20:29:27 +0530 Subject: [PATCH 1/6] 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 000000000..203013b7d --- /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 ce1737d72de951d7019c98d2ecedae65a1e2d209 Mon Sep 17 00:00:00 2001 From: Gokulck007 Date: Thu, 16 Nov 2023 19:00:35 +0530 Subject: [PATCH 2/6] Add build tasks --- azure-pipelines.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b11052f90..4f87114e5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,13 +1,13 @@ trigger: - '*' - pool: +pool: name: 'Default' # Replace Default with the name of your agent pool if you used a different pool - variables: +variables: buildConfiguration: 'Release' - steps: +steps: - task: UseDotNet@2 displayName: 'Use .NET SDK 6.x' inputs: From e9efd5e650a39a61e02dc4f204cb8bde234a4764 Mon Sep 17 00:00:00 2001 From: Gokulck007 Date: Thu, 16 Nov 2023 19:03:58 +0530 Subject: [PATCH 3/6] Add build tasks --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4f87114e5..84d08bba8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,7 @@ trigger: - '*' pool: - name: 'Default' # Replace Default with the name of your agent pool if you used a different pool + vmImage: ubuntu-latest variables: buildConfiguration: 'Release' From 2f9c5a1010acc04e1d073b1f1b1848597ef0e0f7 Mon Sep 17 00:00:00 2001 From: Gokulck007 Date: Thu, 16 Nov 2023 19:16:23 +0530 Subject: [PATCH 4/6] Add publish tasks --- azure-pipelines.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 84d08bba8..050683169 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -40,4 +40,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 9af4179019fc281167134b5bdfe6fd0e66a4f893 Mon Sep 17 00:00:00 2001 From: Gokulck007 Date: Thu, 16 Nov 2023 22:44:33 +0530 Subject: [PATCH 5/6] refractor common variable --- azure-pipelines.yml | 87 +++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 050683169..082b0e7a7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,52 +5,53 @@ pool: vmImage: ubuntu-latest variables: - buildConfiguration: 'Release' - + buildConfiguration: 'Release' + wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' + dotnetSdkVersion: '6.x' + steps: - - 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' - - - task: DotNetCoreCLI@2 - displayName: 'Publish the project - Release' - inputs: +- 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 Release --output $(Build.ArtifactStagingDirectory)/Release' + arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - - task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact: drop' - condition: succeeded() \ No newline at end of file +- task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: drop' + condition: succeeded() \ No newline at end of file From 3919afa57fe8907605ae5f137acf5d63cfbbc6e6 Mon Sep 17 00:00:00 2001 From: Gokulck007 Date: Thu, 16 Nov 2023 23:01:45 +0530 Subject: [PATCH 6/6] Support build configurations --- azure-pipelines.yml | 12 ++++++++++-- templates/build.yml | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 templates/build.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 082b0e7a7..d04411064 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -51,7 +51,15 @@ steps: publishWebProjects: false arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - + +- template: templates/build.yml + parameters: + buildConfiguration: 'Debug' + +- template: templates/build.yml + parameters: + buildConfiguration: 'Release' + - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' - condition: succeeded() \ No newline at end of file + 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