diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5ae004783..028565c2b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,7 +7,6 @@ trigger: - master variables: - solution: '**/*.sln' buildConfiguration: 'Release' dotnetCoreVersion: '2.2.203' _SignType: real @@ -23,31 +22,15 @@ jobs: displayName: Build and Test Sources pool: Hosted VS2017 + variables: + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + _OfficialBuildIdArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER) + steps: - task: DotNetCoreInstaller@0 inputs: version: '$(dotnetCoreVersion)' - - task: DotNetCoreCLI@2 - displayName: '.NET build' - inputs: - command: build - projects: '$(solution)' - arguments: '--configuration $(buildConfiguration)' - - - task: BatchScript@1 - displayName: Publish Microsoft.Spark.Worker - inputs: - filename: script\publish-workers.cmd - arguments: $(Build.SourcesDirectory) $(Build.ArtifactStagingDirectory)\Microsoft.Spark.Worker $(buildConfiguration) - - - task: DotNetCoreCLI@2 - displayName: '.NET unit tests' - inputs: - command: test - projects: '**/*UnitTest/*.csproj' - arguments: '--configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura' - - task: Maven@3 displayName: 'Maven build src' inputs: @@ -64,6 +47,20 @@ jobs: filename: script\download-spark-distros.cmd arguments: $(Build.BinariesDirectory) + - script: build.cmd -pack + -c $(buildConfiguration) + $(_OfficialBuildIdArgs) + /p:PublishSparkWorker=true + /p:SparkWorkerPublishDir=$(Build.ArtifactStagingDirectory)\Microsoft.Spark.Worker + displayName: '.NET build' + + - task: DotNetCoreCLI@2 + displayName: '.NET unit tests' + inputs: + command: test + projects: '**/*UnitTest/*.csproj' + arguments: '--configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura' + - task: DotNetCoreCLI@2 displayName: 'E2E tests for Spark 2.3.0' inputs: @@ -134,19 +131,12 @@ jobs: - task: CopyFiles@2 displayName: Stage .NET artifacts inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/Microsoft.Spark/$(buildConfiguration) + sourceFolder: $(Build.SourcesDirectory)/artifacts/packages/$(buildConfiguration)/Shipping contents: | - **/*.dll - **/*.pdb - targetFolder: $(Build.ArtifactStagingDirectory)/BuildArtifacts/artifacts/bin/Microsoft.Spark/$(buildConfiguration) + **/*.nupkg + **/*.snupkg + targetFolder: $(Build.ArtifactStagingDirectory)/BuildArtifacts/artifacts/packages/$(buildConfiguration)/Shipping - - task: CopyFiles@2 - displayName: Stage scala artifacts - inputs: - sourceFolder: $(Build.SourcesDirectory)/src/scala - contents: '**/*.jar' - targetFolder: $(Build.ArtifactStagingDirectory)/BuildArtifacts/src/scala - - task: PublishBuildArtifacts@1 inputs: pathtoPublish: '$(Build.ArtifactStagingDirectory)' @@ -181,13 +171,6 @@ jobs: **/*.pdb targetFolder: $(Build.SourcesDirectory)/artifacts/bin/Microsoft.Spark/$(buildConfiguration) - - task: CopyFiles@2 - displayName: Copy scala artifacts - inputs: - sourceFolder: $(Build.ArtifactStagingDirectory)/Microsoft.Spark.Binaries/BuildArtifacts/src/scala - contents: '**/*.jar' - targetFolder: $(Build.SourcesDirectory)/src/scala - - task: MicroBuildSigningPlugin@2 displayName: Install MicroBuild plugin inputs: @@ -205,26 +188,6 @@ jobs: msbuildArguments: /t:Restore msbuildVersion: 15.0 - - task: MSBuild@1 - displayName: 'Sign .NET binaries' - inputs: - solution: eng/Sign.proj - msbuildArguments: /t:SignBinaries - /p:SignSparkBinaries=true - /p:SignAssetsDir=$(Build.SourcesDirectory)\artifacts\bin\Microsoft.Spark\$(buildConfiguration)\ - /p:SignType=$(_SignType) - msbuildVersion: 15.0 - - - task: MSBuild@1 - displayName: 'Sign .jar binaries' - inputs: - solution: eng/Sign.proj - msbuildArguments: /t:SignBinaries - /p:SignJarBinaries=true - /p:SignAssetsDir=$(Build.SourcesDirectory)\src\scala\ - /p:SignType=$(_SignType) - msbuildVersion: 15.0 - - task: MSBuild@1 displayName: 'Sign worker binaries' inputs: @@ -235,13 +198,6 @@ jobs: /p:SignType=$(_SignType) msbuildVersion: 15.0 - - task: DotNetCoreCLI@2 - displayName: 'Create NuGet packages' - inputs: - command: pack - projects: '$(solution)' - arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)' - - task: MSBuild@1 displayName: 'Sign nuget/snupkg packages' inputs: diff --git a/eng/AfterSolutionBuild.targets b/eng/AfterSolutionBuild.targets new file mode 100644 index 000000000..06087a113 --- /dev/null +++ b/eng/AfterSolutionBuild.targets @@ -0,0 +1,28 @@ + + + + <_PublishProject Include="$(RepoRoot)src\csharp\Microsoft.Spark.Worker\Microsoft.Spark.Worker.csproj" /> + + + + <_PublishTarget Include="FullFramework" Framework="net461" RuntimeId="win-x64" /> + <_PublishTarget Include="WindowsCore" Framework="netcoreapp2.1" RuntimeId="win-x64" /> + <_PublishTarget Include="LinuxCore" Framework="netcoreapp2.1" RuntimeId="linux-x64" /> + + + + + + + + + + diff --git a/script/publish-workers.cmd b/script/publish-workers.cmd deleted file mode 100644 index 6f2b3f252..000000000 --- a/script/publish-workers.cmd +++ /dev/null @@ -1,21 +0,0 @@ -@echo off - -setlocal - -set Build.SourcesDirectory=%1 -set Build.ArtifactStagingDirectory=%2 -set Build.Configuration=%3 - -CALL :PublishWorker net461, win-x64 -CALL :PublishWorker netcoreapp2.1, win-x64 -CALL :PublishWorker netcoreapp2.1, linux-x64 -EXIT /B %ERRORLEVEL% - -:PublishWorker -set Framework=%~1 -set Runtime=%~2 -mkdir %Build.ArtifactStagingDirectory%\%Framework%\%Runtime% -dotnet publish %Build.SourcesDirectory%\src\csharp\Microsoft.Spark.Worker\Microsoft.Spark.Worker.csproj --configuration %Build.Configuration% --framework %Framework% --runtime %Runtime% --output %Build.ArtifactStagingDirectory%\%Framework%\%Runtime% -EXIT /B 0 - -endlocal \ No newline at end of file