diff --git a/eng/source-build-tarball-build.yml b/eng/source-build-tarball-build.yml index 2c7a9ae59..036c285f7 100644 --- a/eng/source-build-tarball-build.yml +++ b/eng/source-build-tarball-build.yml @@ -3,8 +3,11 @@ pr: none resources: pipelines: - pipeline: installer-build-resource - source: dotnet-installer-official-ci - trigger: true # Run pipeline when any run of dotnet-installer-official-ci completes + ${{ if eq(variables['System.TeamProject'], 'public') }}: + source: installer + ${{ if ne(variables['System.TeamProject'], 'public') }}: + source: dotnet-installer-official-ci + trigger: true # Run pipeline when any run of installer CI completes stages: - stage: build diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml index 88ba3f01c..41bea30ac 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml @@ -27,10 +27,9 @@ jobs: Fedora33-Online: _runOnline: true _Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-33-20210222183538-031e7d2 - # Disable until prebuilts are eliminated - # Fedora33-Offline: - # _runOnline: false - # _Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-33-20210222183538-031e7d2 + Fedora33-Offline: + _runOnline: false + _Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-33-20210222183538-031e7d2 timeoutInMinutes: 210 variables: _TarballDir: $(Build.StagingDirectory)/tarball @@ -82,10 +81,9 @@ jobs: docker run --rm -v $(_TarballDir):/tarball -w /tarball ${networkArgs} $(_Container) ./build.sh ${customBuildArgs} -- /p:CleanWhileBuilding=true displayName: Build Tarball - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - publish: '$(_TarballDir)/artifacts/$(_BuildArch)/$(_BuildConfig)/' - artifact: $(Agent.JobName)_Artifacts_Attempt$(System.JobAttempt) - displayName: Publish Source Build Artifacts + - publish: '$(_TarballDir)/artifacts/$(_BuildArch)/$(_BuildConfig)/' + artifact: $(Agent.JobName)_Artifacts_Attempt$(System.JobAttempt) + displayName: Publish Source Build Artifacts - script: | set -x diff --git a/src/SourceBuild/tarball/content/smoke-test.sh b/src/SourceBuild/tarball/content/smoke-test.sh index a64453ba0..334aa8064 100755 --- a/src/SourceBuild/tarball/content/smoke-test.sh +++ b/src/SourceBuild/tarball/content/smoke-test.sh @@ -601,6 +601,56 @@ function runXmlDocTests() { fi } +function runOmniSharpTests() { + dotnetCmd=${dotnetDir}/dotnet + + rm -rf workdir + mkdir workdir + pushd workdir + + curl -sSLO "https://github.com/OmniSharp/omnisharp-roslyn/releases/latest/download/omnisharp-linux-x64.tar.gz" + + mkdir omnisharp + pushd omnisharp + tar xf "../omnisharp-linux-x64.tar.gz" + popd + + # 'blazorwasm' requires prereqs (non-source-built packages) - re-enable with https://github.com/dotnet/source-build/issues/2550 + for project in blazorserver classlib console mstest mvc nunit web webapp webapi worker xunit ; do + + mkdir hello-$project + pushd hello-$project + + "${dotnetCmd}" new $project + popd + + ./omnisharp/run -s "$(readlink -f hello-$project)" > omnisharp.log & + + sleep 5 + + pkill -P $$ + + # Omnisharp spawns off a number of processes. They all include the + # current directory as a process argument, so use that to identify and + # kill them. + pgrep -f "$(pwd)" + + kill "$(pgrep -f "$(pwd)")" + + cat omnisharp.log + + if grep ERROR omnisharp.log; then + echo "test failed" + exit 1 + else + echo "OK" + fi + + done + + popd +} + function resetCaches() { rm -rf "$testingHome" mkdir "$testingHome" @@ -683,10 +733,7 @@ echo SDK under test is: export NUGET_PACKAGES="$restoredPackagesDir" SOURCE_BUILT_PKGS_PATH="$SCRIPT_ROOT/artifacts/obj/$buildArch/$configuration/blob-feed/packages/" export DOTNET_ROOT="$dotnetDir" -# OSX also requires DOTNET_ROOT to be on the PATH -if [ "$(uname)" == 'Darwin' ]; then - export PATH="$dotnetDir:$PATH" -fi +export PATH="$dotnetDir:$PATH" # Run all tests, local restore sources first, online restore sources second if [ "$excludeLocalTests" == "false" ]; then @@ -727,4 +774,6 @@ fi runXmlDocTests +runOmniSharpTests + echo "ALL TESTS PASSED!"