Kei, thanks for the runtime contribution. Also thanks for pushing the image to docker hub... this makes it easier to try the runtime quickly [1].
> cat main.rb def main(args) name = args["name"] || "stranger" greeting = "Hello #{name}!" print greeting { "greeting" => greeting } end > wsk -i action update ruby main.rb --kind ruby:2.5 ok: updated action ruby > wsk -i action invoke ruby -r -p name ruby { "greeting": "Hello ruby!" } To do this, all I did was modify ansible/files/runtime.json as follows and redeployed the controller and invoker. > diff --git a/ansible/files/runtimes.json b/ansible/files/runtimes.json index 44cb30f2..96a65001 100644 --- a/ansible/files/runtimes.json +++ b/ansible/files/runtimes.json @@ -109,6 +109,17 @@ "name": "action-php-v7.1" } } + ], + "ruby": [ + { + "kind": "ruby:2.5", + "default": true, + "deprecated": false, + "image": { + "prefix": "remore", + "name": "openwhisk-runtime-ruby" + } + } ] On Wed, Jun 6, 2018 at 6:26 AM, James Thomas <jthomas...@gmail.com> wrote: > This looks excellent - I've seen lots of people asking about Ruby support > before! > > If you had time to write up generic instructions for creating a new > runtime, based on your experiences, it would help others add more. It has > been something we've been meaning to do since the PHP runtime. > > Also, if you get time, adding a simple OpenWhisk Ruby client library to the > default runtime would be really useful from a "developer" experience POV. > Just making it easy for developers to invoke functions & triggers from the > runtime would be 80% of the methods needed. > > Thanks for the contribution - looking forward to promoting this! > > > On 6 June 2018 at 10:39, Kei Sawada <k...@swd.cc> wrote: > > > Hi, > > > > This email is follow-up from #3725 which proposes Ruby2.5 runtime > addition. > > https://github.com/apache/incubator-openwhisk/pull/3725 > > > > > (perhaps including a small example on how to try it) > > Here is a quick introduction on how to use and test this runtime. Excuse > me > > in advance for a little bit awkward installation step, I guess there > would > > be better way to do this with fewer steps. > > > > ``` > > # 1. Setting up both openwhisk and openwhisk-runtime-ruby > > git clone https://github.com/remore/incubator-openwhisk.git > > cd incubator-openwhisk > > git checkout origin/add-ruby-as-a-kind > > cd tools/vagrant > > ./hello # fail here because pulling image from > openwhisk/action-ruby-v2.5 > > is not possible yet > > vagrant ssh > > git clone https://github.com/remore/openwhisk-runtime-ruby.git > > cd openwhisk-runtime-ruby/core/ruby2.5Action/ > > docker build -t action-ruby-v2.5 -t whisk/action-ruby-v2.5 > > openwhisk/action-ruby-v2.5 . > > exit # go back to the host machine > > vagrant provision # resume installation > > > > # 2. Creating a ruby action > > vagrant ssh > > cd openwhisk-runtime-ruby > > echo -e "def main(param)\n {result: param}\nend" > my_action.rb > > wsk action update myAction my_action.rb --docker whisk/action-ruby-v2.5 > > ./gradlew core:ruby2.5Action:distDocker > > > > # 3. Try it out > > wsk action invoke myAction --result -p message hello > > > > # 4. Test it > > cd ../openwhisk && ./gradlew install && cd ../openwhisk-runtime-ruby > > ./gradlew :tests:test --tests *actionContainers. > > Ruby25ActionContainerTests* > > ``` > > > > Best, > > Kei > > > > > > -- > Regards, > James Thomas >