Update GitHub actions (#75)

Co-authored-by: Shawn Black <shawnallen85@users.noreply.github.com>
1 file changed
tree: 6c814a6ee6e114b1bbbeaa00cacef83b990d0cba
  1. .github/
  2. core/
  3. gradle/
  4. tests/
  5. tools/
  6. .asf.yaml
  7. .gitignore
  8. .scalafmt.conf
  9. .travis.yml
  10. build.gradle
  11. CONTRIBUTING.md
  12. gradlew
  13. gradlew.bat
  14. LICENSE.txt
  15. NOTICE.txt
  16. README.md
  17. settings.gradle
README.md

Apache OpenWhisk runtimes for .NET

License Build Status

Give it a try today

Create a C# project called Apache.OpenWhisk.Example.Dotnet:

dotnet new classlib -n Apache.OpenWhisk.Example.Dotnet -lang "C#"
cd Apache.OpenWhisk.Example.Dotnet

Install the Newtonsoft.Json NuGet package as follows:

dotnet add package Newtonsoft.Json -v 13.0.1

Now create a file called Hello.cs with the following content:

using System;
using Newtonsoft.Json.Linq;

namespace Apache.OpenWhisk.Example.Dotnet
{
    public class Hello
    {
        public JObject Main(JObject args)
        {
            string name = "stranger";
            if (args.ContainsKey("name")) {
                name = args["name"].ToString();
            }
            JObject message = new JObject();
            message.Add("greeting", new JValue($"Hello, {name}!"));
            return (message);
        }
    }
}

Publish the project as follows:

dotnet publish -c Release -o out

Zip the published files as follows:

cd out
zip -r -0 helloDotNet.zip *

Create the action

wsk action update helloDotNet helloDotNet.zip --main Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main --kind dotnet:6.0

For the return result, not only support dictionary but also support array

So a very simple hello array function would be:

using System;
using Newtonsoft.Json.Linq;

namespace Apache.OpenWhisk.Tests.Dotnet
{
    public class HelloArray
    {
        public JArray Main(JObject args)
        {
            JArray jarray = new JArray();
            jarray.Add("a");
            jarray.Add("b");
            return (jarray);
        }
    }
}

And support array result for sequence action as well, the first action‘s array result can be used as next action’s input parameter.

So the function can be:

using System;
using Newtonsoft.Json.Linq;

namespace Apache.OpenWhisk.Tests.Dotnet
{
    public class HelloPassArrayParam
    {
        public JArray Main(JArray args)
        {
            return (args);
        }
    }
}

Changelogs

Quick Start Guides

License

Apache 2.0