123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- # .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:
- - release
- pr: none
- pool:
- vmImage: 'windows-latest'
- variables:
- - group: Release Secrets
- - name: solution
- value: '**/*.sln'
- - name: archNumber
- value: '64'
- - name: architecture
- value: 'x$(archNumber)'
- - name: buildPlatform
- value: 'win-$(architecture)'
- - name: buildConfiguration
- value: 'Release'
- - name: wasiVer
- value: 'wasi-sdk-24.0-$(wasi-arch)-windows'
- - name: wasiUrl
- value: 'https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-24/$(wasiVer).tar.gz'
- steps:
- - task: UseDotNet@2
- inputs:
- packageType: 'sdk'
- version: '8.x'
- - task: CmdLine@2
- displayName: 'Download WASI SDK'
- inputs:
- script: |
- curl -L -o $(wasiVer).tar.gz $(wasiUrl)
- - task: CmdLine@2
- displayName: 'Unpack WASI SDK'
- inputs:
- script: |
- tar -xzf $(wasiVer).tar.gz
- echo "Contents of directory after extraction:"
- dir $(wasiVer)
- - task: PowerShell@2
- displayName: 'Set Environment Path for WASI SDK'
- inputs:
- targetType: 'inline'
- script: |
- $env:WASI_SDK_PATH = "$(Get-Location)\$(wasiVer)"
- Write-Host "##vso[task.setvariable variable=WASI_SDK_PATH]$env:WASI_SDK_PATH"
- - task: PowerShell@2
- displayName: 'Verify Environment Path'
- inputs:
- targetType: 'inline'
- script: |
- Write-Host "Environment path set to: $env:WASI_SDK_PATH"
- - task: NuGetToolInstaller@1
- - task: DotNetCoreCLI@2
- displayName: Install wasi-wasm
- inputs:
- command: 'custom'
- custom: 'workload'
- arguments: 'install wasi-experimental'
- - task: DotNetCoreCLI@2
- displayName: Install wasm-tools
- inputs:
- command: 'custom'
- custom: 'workload'
- arguments: 'install wasm-tools'
- - task: NuGetCommand@2
- displayName: 'Restore solution'
- inputs:
- restoreSolution: '$(solution)'
- - task: DotNetCoreCLI@2
- displayName: "Build PixiEditor Solution"
- inputs:
- command: 'build'
- projects: 'src/PixiEditor'
- arguments: '-r "$(buildPlatform)" -c $(buildConfiguration)'
- - task: DotNetCoreCLI@2
- displayName: "Build release PixiEditor.UpdateInstaller"
- inputs:
- command: 'publish'
- publishWebProjects: false
- projects: '**/PixiEditor.UpdateInstaller.csproj'
- arguments: '-o "UpdateInstaller" -r "$(buildPlatform)" --self-contained=false -p:PublishSingleFile=true -c $(buildConfiguration)'
- zipAfterPublish: false
- - task: PowerShell@2
- displayName: "Set tag version"
- inputs:
- filePath: 'assemblyVerReader.ps1'
- - task: PowerShell@2
- displayName: Publish PixiEditor
- inputs:
- filePath: 'src/PixiEditor.Builder/build.ps1'
- arguments: '--project-path "$(System.DefaultWorkingDirectory)\src\PixiEditor" --build-configuration "$(buildConfiguration)" --runtime "$(buildPlatform)" -o "$(System.DefaultWorkingDirectory)\Builds\PixiEditor-$(architecture)-light\PixiEditor" --crash-report-webhook-url "$(crash-webhook-url)"'
- workingDirectory: 'src/PixiEditor.Builder'
- - task: ArchiveFiles@2
- inputs:
- rootFolderOrFile: 'Builds\PixiEditor-$(architecture)-light'
- includeRootFolder: false
- archiveType: 'zip'
- archiveFile: 'PixiEditor.$(TagVersion).$(architecture).zip'
- replaceExistingArchive: true
- - task: PublishPipelineArtifact@1
- displayName: "Publish zip artifact"
- inputs:
- targetPath: '$(System.DefaultWorkingDirectory)\PixiEditor.$(TagVersion).$(architecture).zip'
- artifact: 'PixiEditor.$(TagVersion).$(architecture).zip'
- publishLocation: 'pipeline'
- - task: CopyFiles@2
- displayName: "Copy updater to PixiEditor target dir"
- inputs:
- SourceFolder: 'UpdateInstaller'
- Contents: '**'
- TargetFolder: 'Builds/PixiEditor-$(architecture)-light/PixiEditor'
- flattenFolders: true
- - task: PowerShell@2
- displayName: "Compile installer"
- inputs:
- targetType: 'inline'
- script: '& "$env:userprofile\.nuget\packages\tools.innosetup\6.2.1\tools\ISCC.exe" src\Installer\installer-setup-$(architecture)-light.iss'
- - task: PublishPipelineArtifact@1
- displayName: "Publish artifact"
- inputs:
- targetPath: 'src/Installer/Assets/PixiEditor-$(architecture)-light/'
- artifact: 'PixiEditor-setup-$(architecture).exe'
- publishLocation: 'pipeline'
- - task: ArchiveFiles@2
- displayName: "Create zipped installer"
- inputs:
- rootFolderOrFile: 'src/Installer/Assets/PixiEditor-$(architecture)-light'
- includeRootFolder: false
- archiveType: 'zip'
- archiveFile: '$(Build.ArtifactStagingDirectory)/PixiEditor-$(TagVersion)-setup$(archNumber).zip'
- replaceExistingArchive: true
- - task: PublishPipelineArtifact@1
- displayName: "Publish installer zip artifact"
- inputs:
- targetPath: '$(Build.ArtifactStagingDirectory)/PixiEditor-$(TagVersion)-setup$(archNumber).zip'
- artifact: 'PixiEditor-$(TagVersion)-setup$(archNumber).zip'
- publishLocation: 'pipeline'
|