# ASP.NET Core # Build and test ASP.NET Core projects targeting .NET Core. # Add steps that run tests, create a NuGet package, deploy, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core trigger: branches: include: - feature/* exclude: - develop - master variables: solution: '**/*.sln' testProj: '**/*.Tests.csproj' csProj: '**/*.csproj' buildConfiguration: 'Release' publishLocation: '$(Build.SourcesDirectory)/src/Ombi/bin/Release/netcoreapp3.0' pool: vmImage: 'ubuntu-latest' steps: - task: Yarn@3 displayName: Install UI Dependancies inputs: projectDirectory: '$(Build.SourcesDirectory)/src/Ombi/ClientApp/' arguments: 'install' - task: DotNetCoreCLI@2 displayName: Run Unit Tests inputs: command: 'test' projects: '**/*Tests.csproj' ### Publish - task: DotNetCoreCLI@2 displayName: Publish Win10-x64 inputs: command: 'publish' publishWebProjects: true arguments: '-c $(buildConfiguration) -r "win10-x64" -o $(Build.ArtifactStagingDirectory)/win-64' - task: DotNetCoreCLI@2 displayName: Publish Win10-x86 inputs: command: 'publish' publishWebProjects: true arguments: '-c $(buildConfiguration) -r "win10-x86" -o $(Build.ArtifactStagingDirectory)/win-86' - task: DotNetCoreCLI@2 displayName: Publish OSX-x64 inputs: command: 'publish' publishWebProjects: true arguments: '-c $(buildConfiguration) -r "osx-x64" -o $(Build.ArtifactStagingDirectory)/osx-64' - task: DotNetCoreCLI@2 displayName: Publish Linux-x64 inputs: command: 'publish' publishWebProjects: true arguments: '-c $(buildConfiguration) -r "linux-x64" -o $(Build.ArtifactStagingDirectory)/linux-64' - task: DotNetCoreCLI@2 displayName: Publish Linux-ARM inputs: command: 'publish' publishWebProjects: true arguments: '-c $(buildConfiguration) -r "linux-arm" -o $(Build.ArtifactStagingDirectory)/linux-arm' - task: DotNetCoreCLI@2 displayName: Publish Linux-ARM-x64 inputs: command: 'publish' publishWebProjects: true arguments: '-c $(buildConfiguration) -r "linux-arm64" -o $(Build.ArtifactStagingDirectory)/linux-arm64' ### Zip them up - task: ArchiveFiles@2 displayName: Zip Win-x64 inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/win-64' includeRootFolder: true archiveType: 'zip' archiveFile: '$(Build.ArtifactStagingDirectory)/win-x64-$(Build.BuildId).zip' replaceExistingArchive: true - task: ArchiveFiles@2 displayName: Zip Win-x86 inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/win-86' includeRootFolder: true archiveType: 'zip' archiveFile: '$(Build.ArtifactStagingDirectory)/win-x86-$(Build.BuildId).zip' replaceExistingArchive: true - task: ArchiveFiles@2 displayName: Zip OSX-x64 inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/osx-64' includeRootFolder: true archiveType: 'tar' archiveFile: '$(Build.ArtifactStagingDirectory)/osx-x64-$(Build.BuildId).tar.gz' replaceExistingArchive: true - task: ArchiveFiles@2 displayName: Zip Linux-x64 inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/linux-64' includeRootFolder: true archiveType: 'tar' archiveFile: '$(Build.ArtifactStagingDirectory)/linux-x64-$(Build.BuildId).tar.gz' replaceExistingArchive: true - task: ArchiveFiles@2 displayName: Zip Linux-ARM inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/linux-arm' includeRootFolder: true archiveType: 'tar' archiveFile: '$(Build.ArtifactStagingDirectory)/linux-arm-$(Build.BuildId).tar.gz' replaceExistingArchive: true - task: ArchiveFiles@2 displayName: Zip Linux-ARM-x64 inputs: rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/linux-arm64' includeRootFolder: true archiveType: 'tar' archiveFile: '$(Build.ArtifactStagingDirectory)/linux-arm64-$(Build.BuildId).tar.gz' replaceExistingArchive: true - task: PublishBuildArtifacts@1 displayName: Publish Win 64 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/win-x64-$(Build.BuildId).zip' ArtifactName: 'win-x64-$(Build.BuildId).zip' publishLocation: 'Container' - task: PublishBuildArtifacts@1 displayName: Publish Win 86 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/win-x86-$(Build.BuildId).zip' ArtifactName: 'win-x86-$(Build.BuildId).zip' publishLocation: 'Container' - task: PublishBuildArtifacts@1 displayName: Publish OSX 64 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/osx-x64-$(Build.BuildId).tar.gz' ArtifactName: 'osx-x64-$(Build.BuildId).tar.gz' publishLocation: 'Container' - task: PublishBuildArtifacts@1 displayName: Publish Linux 64 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/linux-x64-$(Build.BuildId).tar.gz' ArtifactName: 'drop' publishLocation: 'Container' - task: PublishBuildArtifacts@1 displayName: Publish Linux ARM inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/linux-arm-$(Build.BuildId).tar.gz' ArtifactName: 'linux-arm-$(Build.BuildId).tar.gz' publishLocation: 'Container' - task: PublishBuildArtifacts@1 displayName: Publish OSX 64 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/linux-arm64-$(Build.BuildId).tar.gz' ArtifactName: 'linux-arm64-$(Build.BuildId).tar.gz' publishLocation: 'Container'