diff --git a/Makefile.am b/Makefile.am index 2570cff1d0..c2a45f0644 100644 --- a/Makefile.am +++ b/Makefile.am @@ -62,6 +62,7 @@ csharp_EXTRA_DIST= \ csharp/NuGet.Config \ csharp/README.md \ csharp/build_packages.bat \ + csharp/build_release.sh \ csharp/build_tools.sh \ csharp/buildall.bat \ csharp/buildall.sh \ diff --git a/csharp/BUILD.bazel b/csharp/BUILD.bazel index 1b381b3a34..4f3556647f 100644 --- a/csharp/BUILD.bazel +++ b/csharp/BUILD.bazel @@ -39,6 +39,7 @@ pkg_files( "NuGet.Config", "README.md", "build_packages.bat", + "build_release.sh", "build_tools.sh", "buildall.bat", "buildall.sh", @@ -51,3 +52,9 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//pkg:__pkg__"], ) + +sh_binary( + name = "release", + srcs = ["build_release.sh"], + args = ["$(location build_release.sh)"], +) diff --git a/csharp/build_release.sh b/csharp/build_release.sh new file mode 100755 index 0000000000..93f318f388 --- /dev/null +++ b/csharp/build_release.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +cd $(dirname $(readlink $BASH_SOURCE)) + +# Disable some unwanted dotnet options +set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true +set DOTNET_CLI_TELEMETRY_OPTOUT=true + +# Work around https://github.com/dotnet/core/issues/5881 +dotnet nuget locals all --clear + +# Builds Google.Protobuf NuGet packages +dotnet restore src/Google.Protobuf.sln +dotnet pack -c Release src/Google.Protobuf.sln -p:ContinuousIntegrationBuild=true + +# This requires built protoc executables as specified in the nusepc +nuget pack Google.Protobuf.Tools.nuspec diff --git a/kokoro/linux/bazel_distcheck/build.sh b/kokoro/linux/bazel_distcheck/build.sh index 7c8c53990c..a50b175db2 100755 --- a/kokoro/linux/bazel_distcheck/build.sh +++ b/kokoro/linux/bazel_distcheck/build.sh @@ -55,6 +55,7 @@ bazel_args=( -- //... -//objectivec/... # only works on macOS + -//csharp/... # release builds require external dependencies @com_google_protobuf_examples//... ) ${SCRIPT_ROOT}/kokoro/common/bazel_wrapper.sh "${bazel_args[@]}"