blob: 9179be05ffa86b40cad9ddb0cb20825cc260cc93 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
packages:
IntegrationTestHelloWorld:
actions:
# helloworld action in NodeJS
helloNodejs:
function: actions/hello.js
runtime: nodejs:6
inputs:
name:
type: string
description: name of a person
place:
type: string
description: location of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello World!
helloNodejsWithCode:
code: |
function main(params) {
msg = "Hello, " + params.name + " from " + params.place;
console.log(msg)
return { payload: msg };
}
runtime: nodejs:6
inputs:
name:
type: string
description: name of a person
place:
type: string
description: location of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello World!
# helloworld action in Java
helloJava:
function: actions/hello.jar
main: Hello
runtime: java
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello Bob!
# Uncomment Java With Code once action creation is fixed.
# this is failing with internal server application problem.
# helloJavaWithCode:
# code: |
# import com.google.gson.JsonObject;
# public class Hello {
# private JsonObject response;
# public static JsonObject main(JsonObject args) {
# String name = "stranger";
# if (args.has("name"))
# name = args.getAsJsonPrimitive("name").getAsString();
# JsonObject response = new JsonObject();
# response.addProperty("greeting", "Hello " + name + "!");
# System.out.println(response);
# return response;
# }
# }
# main: Hello
# runtime: java
# inputs:
# name:
# type: string
# description: name of a person
# outputs:
# payload:
# type: string
# description: a simple greeting message, Hello Bob!
# helloworld action in python
helloPython:
function: actions/hello.py
runtime: python
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello Henry!
helloPythonWithCode:
code: |
def main(args):
name = args.get("name", "stranger")
greeting = "Hello " + name + "!"
print(greeting)
return {"greeting": greeting}
runtime: python
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello Henry!
# helloworld action in swift
helloSwift:
function: actions/hello.swift
runtime: swift:3.1.1
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello stranger!
helloSwiftWithCode:
code: |
func main(args: [String:Any]) -> [String:Any] {
var msg = ["greeting": "Hello stranger!"]
if let name = args["name"] as? String {
if !name.isEmpty {
msg["greeting"] = "Hello \(name)!"
}
}
print (msg)
return msg
}
runtime: swift:3.1.1
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello stranger!
helloRuby:
function: actions/hello.rb
helloRubyWithCode:
code: |
def main(args)
name = args["name"] || "stranger"
greeting = "Hello #{name}!"
puts greeting
{ "greeting" => greeting }
end
runtime: ruby:2.5
sequences:
# sequence of helloworld in all four runtimes
hello-world-series:
actions: helloNodejs, helloNodejsWithCode, helloJava, helloPython, helloPythonWithCode, helloSwift, helloSwiftWithCode, helloRuby, helloRubyWithCode
triggers:
# trigger to activate helloworld sequence
triggerHelloworld:
rules:
# rule associating trigger with sequence of helloworld actions
ruleMappingHelloworld:
trigger: triggerHelloworld
action: hello-world-series