# ASP.NET # Build and test ASP.NET projects. # Add steps that publish symbols, save build artifacts, deploy, and more: # https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4 trigger: - master pool: vmImage: 'windows-latest' variables: solution: '**/*.sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release' apiProjectName: 'Shogi' uiProjectName: 'Shogi.UI' steps: - task: NuGetToolInstaller@1 - task: UseDotNet@2 inputs: packageType: sdk #useGlobalJson: true version: 10.x installationPath: $(Agent.ToolsDirectory)/dotnet #Install if not already present. - task: CmdLine@2 inputs: script: 'dotnet workload install wasm-tools' - task: NuGetCommand@2 inputs: restoreSolution: '$(solution)' - task: FileTransform@1 inputs: folderPath: '$(System.DefaultWorkingDirectory)\$(uiProjectName)' fileType: 'json' targetFiles: 'wwwroot/appsettings.json' - task: FileTransform@1 inputs: folderPath: '$(System.DefaultWorkingDirectory)\$(apiProjectName)' fileType: 'json' targetFiles: 'appsettings.json' - task: DotNetCoreCLI@2 inputs: command: 'publish' publishWebProjects: false arguments: '-c Release' zipAfterPublish: false - task: CopyFilesOverSSH@0 displayName: "Copy API files." inputs: sshEndpoint: 'LucaServer' sourceFolder: '$(System.DefaultWorkingDirectory)/$(apiProjectName)/bin/Release/net8.0/publish' contents: '**' targetFolder: '/var/www/apps/$(apiProjectName)' readyTimeout: '20000' - task: CopyFilesOverSSH@0 displayName: "Copy UI files." inputs: sshEndpoint: 'LucaServer' sourceFolder: '$(System.DefaultWorkingDirectory)/$(uiProjectName)/bin/Release/net8.0/publish' contents: '**' targetFolder: '/var/www/apps/$(uiProjectName)' readyTimeout: '20000' - task: SSH@0 displayName: "Restart Kestrel" inputs: sshEndpoint: 'LucaServer' runOptions: 'commands' commands: 'sudo systemctl restart kestrel-Shogi.service' readyTimeout: '20000'