diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eed65e882..51ad78109 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -11,15 +11,20 @@ jobs: steps: - template: azure/build.yml -- job: Windows +- job: Windows (Non-deploy) pool: vmImage: 'vs2017-win2016' steps: - template: azure/build.yml - - script: echo deploy - # TODO: condition check for dev branch - condition: | + +- job: Windows (Deploy) + pool: + vmImage: 'vs2017-win2016' + condition: | and ( succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/ci/azure') ) + steps: + - template: azure/build.yml + - template: azure/deploy.yml diff --git a/azure/build.yml b/azure/build.yml index f488a2550..f69e7884d 100644 --- a/azure/build.yml +++ b/azure/build.yml @@ -1,19 +1,19 @@ steps: -- task: DotNetCoreCLI@2 - inputs: - command: restore - projects: 'Discord.Net.sln' +- script: dotnet restore -v minimal Discord.Net.sln + displayName: Restore packages -- task: DotNetCoreCLI@2 - inputs: - command: build - projects: 'Discord.Net.sln' - configuration: $(buildConfiguration) - arguments: '/p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag)' +- script: dotnet build "Discord.Net.sln" --no-restore -v minimal -c $(buildConfiguration) /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + displayName: Build projects + condition: succeeded() + +- script: dotnet test "test/Discord.Net.Tests/Discord.Net.Tests.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) --logger trx + # TODO: update this to support multiple tests + displayName: Test projects + condition: succeeded() -- task: DotNetCoreCLI@2 +- task: PublishTestResults@2 + displayName: Publish test results + condition: succeededOrFailed() inputs: - command: test - projects: './test/**/*.csproj' - configuration: $(buildConfiguration) - nobuild: True + testRunner: VSTest + testResultsFiles: '**/*.trx' diff --git a/azure/deploy.yml b/azure/deploy.yml index 52663df3f..2bfb55591 100644 --- a/azure/deploy.yml +++ b/azure/deploy.yml @@ -1,12 +1,19 @@ steps: -- task: DotNetCoreCLI@2 - inputs: - command: 'pack' - projects: 'Discord.Net.sln' - configuration: $(buildConfiguration) - nobuild: True - arguments: '/p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag)' +- script: | + dotnet pack "src\Discord.Net.Core\Discord.Net.Core.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + dotnet pack "src\Discord.Net.Rest\Discord.Net.Rest.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + dotnet pack "src\Discord.Net.WebSocket\Discord.Net.WebSocket.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + dotnet pack "src\Discord.Net.Commands\Discord.Net.Commands.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + dotnet pack "src\Discord.Net.Webhook\Discord.Net.Webhook.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + dotnet pack "src\Discord.Net.Providers.WS4Net\Discord.Net.Providers.WS4Net.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + dotnet pack "src\Discord.Net.Analyzers\Discord.Net.Analyzers.csproj" --no-restore --no-build -v minimal -c $(buildConfiguration) -o "artifacts/" /p:BuildNumber=$(buildNumber) /p:IsTagBuild=$(buildTag) + displayName: Pack projects - # TODO: build nuspec + # TODO: build nuspec -- task: PublishBuildArtifacts@1 +- task: NuGetCommand@2 + displayName: Push to NuGet + inputs: + command: push + nuGetFeedType: external + packagesToPush: 'artifacts/*.nupkg'