# .NET Desktop # Build and run tests for .NET Desktop or Windows classic desktop solutions. # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net trigger: none pr: - master - Development resources: repositories: - repository: Plugins type: github endpoint: github.com_SpoinkyNL name: Artemis-RGB/Artemis.Plugins ref: master pool: vmImage: 'windows-latest' variables: artemisSolution: '**/Artemis.sln' pluginProjects: '**/Artemis.Plugins.*.csproj' BuildId: $(Build.BuildId) BuildNumber: $(Build.BuildNumber) SourceBranch: $(Build.SourceBranch) SourceVersion: $(Build.SourceVersion) steps: - checkout: self path: s/Artemis - checkout: Plugins path: s/Artemis.Plugins - task: DotNetCoreCLI@2 displayName: 'Artemis - Publish' inputs: command: 'publish' publishWebProjects: false projects: '$(artemisSolution)' arguments: '--runtime win-x64 --self-contained false --configuration Release --output $(Build.ArtifactStagingDirectory)/build /nowarn:cs1591' zipAfterPublish: false modifyOutputPath: false - task: PowerShell@2 displayName: 'Artemis - Create buildinfo.json' inputs: targetType: 'inline' script: | $OFS = "`r`n" SET-Content -Path 'buildinfo.json' -Value ('{' + $OFS + ' "BuildId": 0,' + $OFS + ' "BuildNumber": 0.0,' + $OFS + ' "SourceBranch": "",' + $OFS + ' "SourceVersion": ""' + $OFS + '}') workingDirectory: '$(Build.ArtifactStagingDirectory)/build' - task: FileTransform@1 displayName: 'Artemis - Populate buildinfo.json' inputs: folderPath: '$(Build.ArtifactStagingDirectory)/build' fileType: 'json' targetFiles: '**/buildinfo.json' # Copy Artemis binaries to where plugin projects expect them - task: CopyFiles@2 displayName: 'Plugins - Prepare Artemis binaries' inputs: SourceFolder: '$(Build.ArtifactStagingDirectory)/build' Contents: '**' TargetFolder: 'Artemis/src/Artemis.UI/bin/net5.0-windows' - task: PowerShell@2 displayName: 'Plugins - Insert build number into plugin.json' inputs: targetType: 'inline' script: | Get-ChildItem -Recurse -Filter plugin.json | Foreach-Object { $buidNumber = "1.0.1." + $Env:BUILD_BUILDID; $a = Get-Content $_.FullName | ConvertFrom-Json $a.Version = $buidNumber; $a | ConvertTo-Json | Set-Content $_.FullName } workingDirectory: 'Artemis.Plugins' - task: DotNetCoreCLI@2 displayName: 'Plugins - Publish' inputs: command: 'publish' publishWebProjects: false arguments: '--runtime win-x64 --configuration Release --self-contained false --output $(Build.ArtifactStagingDirectory)/build/Plugins' projects: '$(pluginProjects)' zipAfterPublish: true - task: PublishPipelineArtifact@1 displayName: 'Upload build to Azure Pipelines' inputs: targetPath: '$(Build.ArtifactStagingDirectory)/build' artifact: 'Artemis build' publishLocation: 'pipeline'