This is an automated email from the ASF dual-hosted git repository. rabbah pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openwhisk-runtime-dotnet.git
The following commit(s) were added to refs/heads/master by this push: new 1fa70f6 Migrate .NET 3.0 to .NET 3.1 (#30) 1fa70f6 is described below commit 1fa70f66e3ff078b295194efeed3f8bc9dce9060 Author: Shawn Black <shawnalle...@users.noreply.github.com> AuthorDate: Thu Dec 26 20:03:55 2019 -0600 Migrate .NET 3.0 to .NET 3.1 (#30) * .NET Core 3.0 support * Updated .NET Core 2.2 project references Updated .NET Core 2.2 Dockerfile to reference latest MS images Migrated Quick Starts to individual projects Moved shared test code to shared folder for reducing duplications * .NET Core 2.2 quickstart update for JSON reference * Removed trailing whitespace Removed trailing whitespace * Travis updates Updating to xenial; dotnet sdk 3.0 install * Download correct dpkg for .NET Core on 16.04 Didn't update it, still referenced 14.04 dpkg * Scala formatting Updated to match expected formatting of file ... note for self: `gradlew scalafmtAll` * CHANGELOG Updates Updated to reflect appropriate release and release status. * .NET 3.0 to .NET 3.1 .NET 3.0 to .NET 3.1 * Scala Tests Fixed test class names; added additional test for 3.1 runtime to test 2.2 project --- .travis.yml | 2 +- README.md | 4 ++-- core/{dotnet3.0 => dotnet3.1}/CHANGELOG.md | 2 +- core/{dotnet3.0 => dotnet3.1}/Dockerfile | 6 +++--- core/{dotnet3.0 => dotnet3.1}/QUICKSTART.md | 20 ++++++++++---------- core/{dotnet3.0 => dotnet3.1}/build.gradle | 2 +- .../Apache.OpenWhisk.Runtime.Common.csproj | 2 +- .../HttpResponseExtension.cs | 0 .../proxy/Apache.OpenWhisk.Runtime.Common/Init.cs | 0 .../proxy/Apache.OpenWhisk.Runtime.Common/Run.cs | 0 .../Apache.OpenWhisk.Runtime.Common/Startup.cs | 0 .../Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj | 2 +- .../Program.cs | 0 core/{dotnet3.0 => dotnet3.1}/proxy/build.gradle | 0 .../proxy/gradle/wrapper/gradle-wrapper.jar | Bin .../proxy/gradle/wrapper/gradle-wrapper.properties | 0 core/{dotnet3.0 => dotnet3.1}/proxy/gradlew | 0 core/{dotnet3.0 => dotnet3.1}/proxy/gradlew.bat | 0 .../proxy/openwhisk-runtime-dotnet.sln | 0 settings.gradle | 6 +++--- tests/build.gradle | 2 +- .../Apache.OpenWhisk.Tests.Dotnet.csproj | 0 tests/{dotnet3.0 => dotnet3.1}/build.gradle | 2 +- .../openwhisk-tests-dotnet.sln | 0 ...ts.scala => DotNet3_1ActionContainerTests.scala} | 8 ++++---- ...cala => DotNet3_1ActionContainerTests_2_2.scala} | 8 ++++---- tools/travis/build.sh | 4 ++-- 27 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.travis.yml b/.travis.yml index cbf41e1..b6ff633 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,7 @@ deploy: all_branches: true repo: apache/openwhisk-runtime-dotnet - provider: script - script: "./tools/travis/publish.sh openwhisk 2.2 nightly && ./tools/travis/publish.sh openwhisk 3.0 nightly" + script: "./tools/travis/publish.sh openwhisk 2.2 nightly && ./tools/travis/publish.sh openwhisk 3.1 nightly" on: branch: master repo: apache/openwhisk-runtime-dotnet diff --git a/README.md b/README.md index a529e1f..aef4ddc 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,12 @@ ## Changelogs - [.NET Core 2.2 CHANGELOG.md](core/dotnet2.2/CHANGELOG.md) -- [.NET Core 3.0 CHANGELOG.md](core/dotnet3.0/CHANGELOG.md) +- [.NET Core 3.1 CHANGELOG.md](core/dotnet3.1/CHANGELOG.md) ## Quick Start Guides - [.NET Core 2.2](core/dotnet2.2/QUICKSTART.md) -- [.NET Core 3.0](core/dotnet3.0/QUICKSTART.md) +- [.NET Core 3.1](core/dotnet3.1/QUICKSTART.md) # License diff --git a/core/dotnet3.0/CHANGELOG.md b/core/dotnet3.1/CHANGELOG.md similarity index 96% rename from core/dotnet3.0/CHANGELOG.md rename to core/dotnet3.1/CHANGELOG.md index c09bde8..f4e3fa8 100644 --- a/core/dotnet3.0/CHANGELOG.md +++ b/core/dotnet3.1/CHANGELOG.md @@ -17,7 +17,7 @@ # --> -# .NET Core 3.0 OpenWhisk Runtime Container +# .NET Core 3.1 OpenWhisk Runtime Container ## Release TBD diff --git a/core/dotnet3.0/Dockerfile b/core/dotnet3.1/Dockerfile similarity index 89% rename from core/dotnet3.0/Dockerfile rename to core/dotnet3.1/Dockerfile index 9e9576f..f69c6d2 100644 --- a/core/dotnet3.0/Dockerfile +++ b/core/dotnet3.1/Dockerfile @@ -15,7 +15,7 @@ # limitations under the License. # -FROM mcr.microsoft.com/dotnet/core/sdk:3.0-alpine AS build +FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS build WORKDIR /app COPY proxy/Apache.OpenWhisk.Runtime.Common/*.csproj ./Apache.OpenWhisk.Runtime.Common/ @@ -26,9 +26,9 @@ RUN dotnet restore COPY proxy/Apache.OpenWhisk.Runtime.Common/. ./Apache.OpenWhisk.Runtime.Common/ COPY proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/. ./Apache.OpenWhisk.Runtime.Dotnet.Minimal/ WORKDIR /app/Apache.OpenWhisk.Runtime.Dotnet.Minimal -RUN dotnet publish -c Release -r alpine.3.9-x64 -o out +RUN dotnet publish -c Release -r linux-musl-x64 -o out -FROM mcr.microsoft.com/dotnet/core/runtime:3.0-alpine AS runtime +FROM mcr.microsoft.com/dotnet/core/runtime:3.1-alpine AS runtime WORKDIR /app COPY --from=build /app/Apache.OpenWhisk.Runtime.Dotnet.Minimal/out ./ ENV ASPNETCORE_URLS http://+:8080 diff --git a/core/dotnet3.0/QUICKSTART.md b/core/dotnet3.1/QUICKSTART.md similarity index 91% rename from core/dotnet3.0/QUICKSTART.md rename to core/dotnet3.1/QUICKSTART.md index c8e720f..1f4e63a 100644 --- a/core/dotnet3.0/QUICKSTART.md +++ b/core/dotnet3.1/QUICKSTART.md @@ -17,7 +17,7 @@ # --> -# Quick .NET Core 3.0 Action +# Quick .NET Core 3.1 Action A .NET Core action is a .NET Core class library with a method called `Main` that has the exact signature as follows: @@ -87,7 +87,7 @@ The value for `main` needs to be in the following format: To use on a deployment of OpenWhisk that contains the runtime as a kind: ```bash -wsk action update helloDotNet helloDotNet.zip --main Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main --kind dotnet:3.0 +wsk action update helloDotNet helloDotNet.zip --main Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main --kind dotnet:3.1 ``` ## Invoke the .NET Core Action @@ -107,19 +107,19 @@ wsk action invoke --result helloDotNet --param name World ## Local Development ```bash -./gradlew core:dotnet3.0:distDocker +./gradlew core:dotnet3.1:distDocker ``` -This will produce the image `whisk/action-dotnet-v3.0` +This will produce the image `whisk/action-dotnet-v3.1` Build and Push image ```bash docker login -./gradlew core:action-dotnet-v3.0:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io +./gradlew core:action-dotnet-v3.1:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io ``` -Deploy OpenWhisk using ansible environment that contains the kind `dotnet:3.0` +Deploy OpenWhisk using ansible environment that contains the kind `dotnet:3.1` Assuming you have OpenWhisk already deploy localy and `OPENWHISK_HOME` pointing to root directory of OpenWhisk core repository. Set `ROOTDIR` to the root directory of this repository. @@ -162,7 +162,7 @@ Using gradle to run all tests Using gradle to run some tests ```bash -./gradlew :tests:test --tests DotNet3_0ActionContainerTests +./gradlew :tests:test --tests DotNet3_1ActionContainerTests ``` Using IntelliJ: @@ -175,14 +175,14 @@ Using IntelliJ: To use as docker action push to your own dockerhub account ```bash -docker tag whisk/action-dotnet-v3.0 $user_prefix/action-dotnet-v3.0 -docker push $user_prefix/action-dotnet-v3.0 +docker tag whisk/action-dotnet-v3.1 $user_prefix/action-dotnet-v3.1 +docker push $user_prefix/action-dotnet-v3.1 ``` Then create the action using your the image from dockerhub ```bash -wsk action update helloDotNet helloDotNet.zip --main Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main --docker $user_prefix/action-dotnet-v3.0 +wsk action update helloDotNet helloDotNet.zip --main Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main --docker $user_prefix/action-dotnet-v3.1 ``` The `$user_prefix` is usually your dockerhub user id. diff --git a/core/dotnet3.0/build.gradle b/core/dotnet3.1/build.gradle similarity index 95% rename from core/dotnet3.0/build.gradle rename to core/dotnet3.1/build.gradle index 3d62aac..48d3de4 100644 --- a/core/dotnet3.0/build.gradle +++ b/core/dotnet3.1/build.gradle @@ -15,6 +15,6 @@ * limitations under the License. */ -ext.dockerImageName = 'action-dotnet-v3.0' +ext.dockerImageName = 'action-dotnet-v3.1' apply from: '../../gradle/docker.gradle' diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Apache.OpenWhisk.Runtime.Common.csproj b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Apache.OpenWhisk.Runtime.Common.csproj similarity index 95% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Apache.OpenWhisk.Runtime.Common.csproj rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Apache.OpenWhisk.Runtime.Common.csproj index db2338b..7d482f9 100644 --- a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Apache.OpenWhisk.Runtime.Common.csproj +++ b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Apache.OpenWhisk.Runtime.Common.csproj @@ -17,7 +17,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFramework>netcoreapp3.0</TargetFramework> + <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/HttpResponseExtension.cs b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/HttpResponseExtension.cs similarity index 100% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/HttpResponseExtension.cs rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/HttpResponseExtension.cs diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Init.cs b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Init.cs similarity index 100% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Init.cs rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Init.cs diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Run.cs b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Run.cs similarity index 100% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Run.cs rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Run.cs diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Startup.cs b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Startup.cs similarity index 100% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Common/Startup.cs rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Common/Startup.cs diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj similarity index 94% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj index 452115d..ce6efa6 100644 --- a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj +++ b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Apache.OpenWhisk.Runtime.Dotnet.Minimal.csproj @@ -18,7 +18,7 @@ <PropertyGroup> <OutputType>Exe</OutputType> - <TargetFramework>netcoreapp3.0</TargetFramework> + <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> diff --git a/core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Program.cs b/core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Program.cs similarity index 100% rename from core/dotnet3.0/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Program.cs rename to core/dotnet3.1/proxy/Apache.OpenWhisk.Runtime.Dotnet.Minimal/Program.cs diff --git a/core/dotnet3.0/proxy/build.gradle b/core/dotnet3.1/proxy/build.gradle similarity index 100% rename from core/dotnet3.0/proxy/build.gradle rename to core/dotnet3.1/proxy/build.gradle diff --git a/core/dotnet3.0/proxy/gradle/wrapper/gradle-wrapper.jar b/core/dotnet3.1/proxy/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from core/dotnet3.0/proxy/gradle/wrapper/gradle-wrapper.jar rename to core/dotnet3.1/proxy/gradle/wrapper/gradle-wrapper.jar diff --git a/core/dotnet3.0/proxy/gradle/wrapper/gradle-wrapper.properties b/core/dotnet3.1/proxy/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from core/dotnet3.0/proxy/gradle/wrapper/gradle-wrapper.properties rename to core/dotnet3.1/proxy/gradle/wrapper/gradle-wrapper.properties diff --git a/core/dotnet3.0/proxy/gradlew b/core/dotnet3.1/proxy/gradlew similarity index 100% rename from core/dotnet3.0/proxy/gradlew rename to core/dotnet3.1/proxy/gradlew diff --git a/core/dotnet3.0/proxy/gradlew.bat b/core/dotnet3.1/proxy/gradlew.bat similarity index 100% rename from core/dotnet3.0/proxy/gradlew.bat rename to core/dotnet3.1/proxy/gradlew.bat diff --git a/core/dotnet3.0/proxy/openwhisk-runtime-dotnet.sln b/core/dotnet3.1/proxy/openwhisk-runtime-dotnet.sln similarity index 100% rename from core/dotnet3.0/proxy/openwhisk-runtime-dotnet.sln rename to core/dotnet3.1/proxy/openwhisk-runtime-dotnet.sln diff --git a/settings.gradle b/settings.gradle index d787614..f09a673 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,13 +17,13 @@ include ':tests' include ':tests:dotnet2.2' -include ':tests:dotnet3.0' +include ':tests:dotnet3.1' include ':core:dotnet2.2' include ':core:dotnet2.2:proxy' -include ':core:dotnet3.0' -include ':core:dotnet3.0:proxy' +include ':core:dotnet3.1' +include ':core:dotnet3.1:proxy' rootProject.name = 'runtime-dotnet' diff --git a/tests/build.gradle b/tests/build.gradle index 2cfb28f..568d62d 100644 --- a/tests/build.gradle +++ b/tests/build.gradle @@ -44,5 +44,5 @@ tasks.withType(ScalaCompile) { compileTestScala { dependsOn ':tests:dotnet2.2:prepare' - dependsOn ':tests:dotnet3.0:prepare' + dependsOn ':tests:dotnet3.1:prepare' } diff --git a/tests/dotnet3.0/Apache.OpenWhisk.Tests.Dotnet/Apache.OpenWhisk.Tests.Dotnet.csproj b/tests/dotnet3.1/Apache.OpenWhisk.Tests.Dotnet/Apache.OpenWhisk.Tests.Dotnet.csproj similarity index 100% rename from tests/dotnet3.0/Apache.OpenWhisk.Tests.Dotnet/Apache.OpenWhisk.Tests.Dotnet.csproj rename to tests/dotnet3.1/Apache.OpenWhisk.Tests.Dotnet/Apache.OpenWhisk.Tests.Dotnet.csproj diff --git a/tests/dotnet3.0/build.gradle b/tests/dotnet3.1/build.gradle similarity index 97% rename from tests/dotnet3.0/build.gradle rename to tests/dotnet3.1/build.gradle index 8c2e65e..c23a22c 100644 --- a/tests/dotnet3.0/build.gradle +++ b/tests/dotnet3.1/build.gradle @@ -41,7 +41,7 @@ task prepare_zip(type: Zip, dependsOn: prepare_distro) { from file('build/dist/out') include '*' include '**/**' - archiveName 'dotnettests3.0.zip' + archiveName 'dotnettests3.1.zip' destinationDir(file('../src/test/resources')) } diff --git a/tests/dotnet3.0/openwhisk-tests-dotnet.sln b/tests/dotnet3.1/openwhisk-tests-dotnet.sln similarity index 100% rename from tests/dotnet3.0/openwhisk-tests-dotnet.sln rename to tests/dotnet3.1/openwhisk-tests-dotnet.sln diff --git a/tests/src/test/scala/actionContainers/DotNet3_0ActionContainerTests.scala b/tests/src/test/scala/actionContainers/DotNet3_1ActionContainerTests.scala similarity index 97% copy from tests/src/test/scala/actionContainers/DotNet3_0ActionContainerTests.scala copy to tests/src/test/scala/actionContainers/DotNet3_1ActionContainerTests.scala index d05860c..a0c1acb 100644 --- a/tests/src/test/scala/actionContainers/DotNet3_0ActionContainerTests.scala +++ b/tests/src/test/scala/actionContainers/DotNet3_1ActionContainerTests.scala @@ -25,12 +25,12 @@ import actionContainers.ActionContainer.withContainer import java.nio.file.Paths @RunWith(classOf[JUnitRunner]) -class DotNet3_0ActionContainerTests extends BasicActionRunnerTests with WskActorSystem { - val functionb64 = ResourceHelpers.readAsBase64(Paths.get(getClass.getResource("/dotnettests3.0.zip").getPath)) +class DotNet3_1ActionContainerTests extends BasicActionRunnerTests with WskActorSystem { + val functionb64 = ResourceHelpers.readAsBase64(Paths.get(getClass.getResource("/dotnettests3.1.zip").getPath)) // Helpers specific to java actions override def withActionContainer(env: Map[String, String] = Map.empty)( - code: ActionContainer => Unit): (String, String) = withContainer("action-dotnet-v3.0", env)(code) + code: ActionContainer => Unit): (String, String) = withContainer("action-dotnet-v3.1", env)(code) behavior of "dotnet action" @@ -112,7 +112,7 @@ class DotNet3_0ActionContainerTests extends BasicActionRunnerTests with WskActor runRes shouldBe defined runRes should { - be(Some(JsObject("error" -> JsString(".NETCoreApp,Version=v3.0")))) + be(Some(JsObject("error" -> JsString(".NETCoreApp,Version=v3.1")))) } } diff --git a/tests/src/test/scala/actionContainers/DotNet3_0ActionContainerTests.scala b/tests/src/test/scala/actionContainers/DotNet3_1ActionContainerTests_2_2.scala similarity index 97% rename from tests/src/test/scala/actionContainers/DotNet3_0ActionContainerTests.scala rename to tests/src/test/scala/actionContainers/DotNet3_1ActionContainerTests_2_2.scala index d05860c..69e7c57 100644 --- a/tests/src/test/scala/actionContainers/DotNet3_0ActionContainerTests.scala +++ b/tests/src/test/scala/actionContainers/DotNet3_1ActionContainerTests_2_2.scala @@ -25,12 +25,12 @@ import actionContainers.ActionContainer.withContainer import java.nio.file.Paths @RunWith(classOf[JUnitRunner]) -class DotNet3_0ActionContainerTests extends BasicActionRunnerTests with WskActorSystem { - val functionb64 = ResourceHelpers.readAsBase64(Paths.get(getClass.getResource("/dotnettests3.0.zip").getPath)) +class DotNet3_1ActionContainerTests_2_2 extends BasicActionRunnerTests with WskActorSystem { + val functionb64 = ResourceHelpers.readAsBase64(Paths.get(getClass.getResource("/dotnettests2.2.zip").getPath)) // Helpers specific to java actions override def withActionContainer(env: Map[String, String] = Map.empty)( - code: ActionContainer => Unit): (String, String) = withContainer("action-dotnet-v3.0", env)(code) + code: ActionContainer => Unit): (String, String) = withContainer("action-dotnet-v3.1", env)(code) behavior of "dotnet action" @@ -112,7 +112,7 @@ class DotNet3_0ActionContainerTests extends BasicActionRunnerTests with WskActor runRes shouldBe defined runRes should { - be(Some(JsObject("error" -> JsString(".NETCoreApp,Version=v3.0")))) + be(Some(JsObject("error" -> JsString(".NETCoreApp,Version=v3.1")))) } } diff --git a/tools/travis/build.sh b/tools/travis/build.sh index 98027fb..9695072 100755 --- a/tools/travis/build.sh +++ b/tools/travis/build.sh @@ -31,7 +31,7 @@ export OPENWHISK_HOME=$WHISKDIR cd $UTILDIR scancode/scanCode.py --config scancode/ASF-Release.cfg $ROOTDIR -# Upgrade dpkg avoid problems installing dotnet 3.0 +# Upgrade dpkg avoid problems installing dotnet 3.1 # https://github.com/travis-ci/travis-ci/issues/9361#issuecomment-408431262 sudo apt-get install -y --force-yes -q -qq dpkg # Install dotnet @@ -39,7 +39,7 @@ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-pr sudo dpkg -i packages-microsoft-prod.deb sudo apt-get install -y apt-transport-https sudo apt-get -y update -qq -sudo apt-get install -y dotnet-sdk-3.0 +sudo apt-get install -y dotnet-sdk-3.1 # Build OpenWhisk deps before we run tests cd $WHISKDIR