Enable API Gateway integration test in Travis (#923)

* an attempt to enable api gateway test in travis

* fixing race condition while running integration test

* renaming rules and triggers

* fixing action source file location
diff --git a/tests/src/integration/apigateway/apigateway_test.go b/tests/src/integration/apigateway/apigateway_test.go
index a75a033..6bc3355 100644
--- a/tests/src/integration/apigateway/apigateway_test.go
+++ b/tests/src/integration/apigateway/apigateway_test.go
@@ -1,4 +1,4 @@
-// +build skip_integration
+// +build integration
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/tests/src/integration/apigateway/manifest.yml b/tests/src/integration/apigateway/manifest.yml
index defdff8..888ab86 100644
--- a/tests/src/integration/apigateway/manifest.yml
+++ b/tests/src/integration/apigateway/manifest.yml
@@ -39,4 +39,5 @@
                         deleteBooks: DELETE
                     members:
                         listMembers: GET
+                    allMembers:
                         listAllMembers: GET
diff --git a/tests/src/integration/export/export_test.go b/tests/src/integration/export/export_test.go
index 63f8fce..7e2a0bc 100644
--- a/tests/src/integration/export/export_test.go
+++ b/tests/src/integration/export/export_test.go
@@ -116,7 +116,7 @@
 	targetManifestFolder = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/export/tmp/"
 	targetManifestPath   = targetManifestFolder + "manifest.yaml"
 
-	manifestHelloWorldPath       = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/helloworld/manifest.yaml"
+	manifestHelloWorldPath       = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/export/manifest_helloworld.yaml"
 	targetManifestHelloWorldPath = targetManifestFolder + "manifest.yaml"
 	manifest2PackPath            = os.Getenv("GOPATH") + "/src/github.com/apache/incubator-openwhisk-wskdeploy/tests/src/integration/export/manifest_2pack.yaml"
 	target2PackManifestPath      = targetManifestFolder + "exported2packmanifest.yaml"
diff --git a/tests/src/integration/export/manifest_helloworld.yaml b/tests/src/integration/export/manifest_helloworld.yaml
new file mode 100644
index 0000000..32011cd
--- /dev/null
+++ b/tests/src/integration/export/manifest_helloworld.yaml
@@ -0,0 +1,153 @@
+# 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:
+  IntegrationTestExportHelloWorld:
+      actions:
+        # helloworld action in NodeJS
+        helloNodejs:
+          function: ../helloworld/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: ../helloworld/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: ../helloworld/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: ../helloworld/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!
+      sequences:
+        # sequence of helloworld in all four runtimes
+        hello-world-series:
+          actions: helloNodejs, helloNodejsWithCode, helloJava, helloPython, helloPythonWithCode, helloSwift, helloSwiftWithCode
+      triggers:
+        # trigger to activate helloworld sequence
+        triggerExportHelloworld:
+      rules:
+        # rule associating trigger with sequence of helloworld actions
+        ruleMappingExportHelloworld:
+          trigger: triggerExportHelloworld
+          action: hello-world-series
diff --git a/tools/travis/script.sh b/tools/travis/script.sh
index 923905d..21db832 100755
--- a/tools/travis/script.sh
+++ b/tools/travis/script.sh
@@ -53,6 +53,7 @@
 $ANSIBLE_CMD initdb.yml
 
 $ANSIBLE_CMD wipe.yml
+$ANSIBLE_CMD apigateway.yml
 $ANSIBLE_CMD openwhisk.yml -e '{"openwhisk_cli":{"installation_mode":"remote","remote":{"name":"OpenWhisk_CLI","dest_name":"OpenWhisk_CLI","location":"https://github.com/apache/incubator-openwhisk-cli/releases/download/latest"}}}'