This is an automated email from the ASF dual-hosted git repository.
csantanapr pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-openwhisk-runtime-go.git
The following commit(s) were added to refs/heads/master by this push:
new fb85997 Cleaned the vendor folder (#55)
fb85997 is described below
commit fb8599773d9536463645c75b6de3935b31599687
Author: Sciabarra.com ltd <[email protected]>
AuthorDate: Wed Oct 24 04:07:32 2018 +0200
Cleaned the vendor folder (#55)
* cleanup
* fixed vendor folders with more examples and documentation
---
common/gobuild.py | 4 +++
docs/DEPLOY.md | 4 ++-
examples/EXAMPLES.md | 1 +
examples/Makefile | 32 +++++++++---------
examples/bash-hello/Makefile | 2 +-
examples/golang-hello-single/Makefile | 4 +--
examples/golang-hello-vendor/Makefile | 8 ++---
examples/golang-main-package/Makefile | 4 +--
examples/golang-main-single/Makefile | 4 +--
examples/golang-main-standalone/Makefile | 4 +--
.../Makefile | 14 ++++----
examples/golang-main-vendor/src/main/Gopkg.lock | 25 ++++++++++++++
examples/golang-main-vendor/src/main/Gopkg.toml | 34 +++++++++++++++++++
examples/golang-main-vendor/src/main/main.go | 38 ++++++++++++++++++++++
openwhisk/initHandler.go | 3 +-
15 files changed, 144 insertions(+), 37 deletions(-)
diff --git a/common/gobuild.py b/common/gobuild.py
index 053ed69..8cd3cf0 100755
--- a/common/gobuild.py
+++ b/common/gobuild.py
@@ -43,6 +43,8 @@ def sources(launcher, source_dir, main):
# copy the launcher fixing the main
if not has_main:
dst = "%s/main__.go" % source_dir
+ if os.path.isdir("%s/main" % source_dir):
+ dst = "%s/main/main__.go" % source_dir
with codecs.open(dst, 'w', 'utf-8') as d:
with codecs.open(launcher, 'r', 'utf-8') as e:
code = e.read()
@@ -55,6 +57,8 @@ def build(parent, source_dir, target):
"PATH": os.environ["PATH"],
"GOPATH": os.path.abspath(parent)
}
+ if os.path.isdir("%s/main" % source_dir):
+ source_dir += "/main"
p = subprocess.Popen(
["go", "build", "-i", "-ldflags=-s -w", "-o", target],
stdout=subprocess.PIPE,
diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md
index 583fae2..c059fac 100644
--- a/docs/DEPLOY.md
+++ b/docs/DEPLOY.md
@@ -100,7 +100,7 @@ To create a vendor folder, you need to
- install the [dep](https://github.com/golang/dep) tool
- cd to the `src/hello` folder (*not* the `src` folder)
-- run `dep init` the first time (it will create 2 manifest files `Gopkg.lock`
and `Gopkg.toml`) or `dep ensure` if you already have the manifest files.
+- run `GOPATH=$PWD/../.. dep init` the first time (it will create 2 manifest
files `Gopkg.lock` and `Gopkg.toml`) or `dep ensure` if you already have the
manifest files.
The layout will be something like this:
@@ -123,6 +123,8 @@ Check the example `golang-hello-vendor`.
Note you do not need to store the `vendor` folder in the version control
system as it can be regenerated (only the manifest files), but you need to
include the entire vendor folder when you deploy the action.
+If you need to use vendor folder in the main package, you need to create a
directory `main` and place all the source code that would normally go in the
top level, in the `main` folder instead. A vendor folder in the top level
*does not work*.
+
<a name="vscode">
### Using VsCode
diff --git a/examples/EXAMPLES.md b/examples/EXAMPLES.md
index a59d25e..2515dac 100644
--- a/examples/EXAMPLES.md
+++ b/examples/EXAMPLES.md
@@ -31,6 +31,7 @@ Available examples:
- [Simple Golang action](golang-main-single) main is `main.Main`
- [Simple Golang action](golang-hello-single) main is `main.Hello`
- [Golang action with a subpackage](golang-main-package) main is `main.Main`
invoking a `hello.Hello`
+- [Golang action with a vendor folder](golang-main-vendor) main is `main.Main`
using a dependency `github.com/rs/zerolog`
- [Golang action with a subpackage and vendor folder](golang-hello-vendor)
main is `main.Hello` invoking a `hello.Hello` using a dependency
`github.com/sirupsen/logrus`
- [Standalone Golang Action](golang-main-standalone) main is `main.main`,
implements the ActionLoop directly
- [Simple Bash action](bash-hello) a simple bash script action implementing
the ActionLoop directly
diff --git a/examples/Makefile b/examples/Makefile
index 3b65bbb..8774e4d 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -1,32 +1,34 @@
# prefix
-
-USER=msciab # devel
-#USER=openwhisk # deploy
+IMAGES?=openwhisk
all: .PHONY
-.PHONY: bash-hello golang-hello-single golang-main-single
golang-main-standalone golang-main-package golang-hello-vendor
bash-hello:
- OW_USER=$(USER) make deploy test -C bash-hello
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
golang-main-single:
- OW_USER=$(USER) make deploy test -C $@
- OW_USER=$(USER) make deploy test -C $@
+ cd $@ && OW_USER=$(IMAGES) make clean devel test
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
golang-hello-single:
- OW_USER=$(USER) make deploy test -C $@
- OW_USER=$(USER) make deploy test -C $@
+ cd $@ && OW_USER=$(IMAGES) make clean devel test
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
golang-main-standalone:
- OW_USER=$(USER) make deploy test -C $@
- OW_USER=$(USER) make deploy test -C $@
+ cd $@ && OW_USER=$(IMAGES) make clean devel test
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
golang-main-package:
- OW_USER=$(USER) make deploy test -C $@
- OW_USER=$(USER) make deploy test -C $@
+ cd $@ && OW_USER=$(IMAGES) make clean devel test
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
+
+golang-main-vendor:
+ cd $@ && OW_USER=$(IMAGES) make clean devel test
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
golang-hello-vendor:
- OW_USER=$(USER) make deploy test -C $@
- OW_USER=$(USER) make deploy test -C $@
+ cd $@ && OW_USER=$(IMAGES) make clean devel test
+ cd $@ && OW_USER=$(IMAGES) make clean deploy test
+.PHONY: bash-hello golang-hello-single golang-main-single
golang-main-standalone golang-main-package golang-main-vendor
golang-hello-vendor
diff --git a/examples/bash-hello/Makefile b/examples/bash-hello/Makefile
index da69f47..8fa3945 100644
--- a/examples/bash-hello/Makefile
+++ b/examples/bash-hello/Makefile
@@ -15,7 +15,7 @@ test: test.json
$(WSK) action invoke $(PACKAGE)/$(NAME) -P test.json -r
clean:
- $(WSK) action delete $(PACKAGE)/$(NAME)
+ -$(WSK) action delete $(PACKAGE)/$(NAME)
package.done:
$(WSK) package update $(PACKAGE)
diff --git a/examples/golang-hello-single/Makefile
b/examples/golang-hello-single/Makefile
index d16f0e1..e02f3dd 100644
--- a/examples/golang-hello-single/Makefile
+++ b/examples/golang-hello-single/Makefile
@@ -18,8 +18,8 @@ $(ZIP): $(SRC)
docker run -i $(OW_COMPILER) -compile $(MAIN) <$(SRC) >$(ZIP)
clean:
- wsk action delete $(PACKAGE)/$(NAME)
- rm $(ZIP) package.done
+ -$(WSK) action delete $(PACKAGE)/$(NAME)
+ -rm $(ZIP) package.done
test: test.json
$(WSK) action invoke test/$(NAME) -r
diff --git a/examples/golang-hello-vendor/Makefile
b/examples/golang-hello-vendor/Makefile
index 8efada7..8d76f26 100644
--- a/examples/golang-hello-vendor/Makefile
+++ b/examples/golang-hello-vendor/Makefile
@@ -14,10 +14,10 @@ deploy: package.done $(BINZIP)
$(WSK) action update $(PACKAGE)/$(NAME) $(BINZIP) --main $(MAIN)
--docker $(OW_RUNTIME)
devel: package.done $(SRCZIP)
- $(WSK) action update $(PACKAGE)/$(NAME) $(SRCZIP) --main $(MAIN)
--docker $(OW_RUNTIME)
+ $(WSK) action update $(PACKAGE)/$(NAME) $(SRCZIP) --main $(MAIN)
--docker $(OW_COMPILER)
src/%/vendor:
- cd $(@D) ; dep ensure
+ cd $(@D) ; GOPATH=$$PWD/../.. dep ensure
$(BINZIP): $(SRCS) $(VENDORS)
cd src ; zip - -r * | docker run -i $(OW_COMPILER) -compile $(MAIN)
>../$(BINZIP)
@@ -26,8 +26,8 @@ $(SRCZIP): $(SRCS) $(VENDORS)
cd src ; zip ../$(SRCZIP) -r *
clean:
- wsk action delete $(PACKAGE)/$(NAME)
- rm $(BINZIP) $(SRCZIP) package.done
+ -$(WSK)action delete $(PACKAGE)/$(NAME)
+ -rm $(BINZIP) $(SRCZIP) package.done
test: test.json
$(WSK) action invoke test/$(NAME) -r
diff --git a/examples/golang-main-package/Makefile
b/examples/golang-main-package/Makefile
index cb266fd..7677d2e 100644
--- a/examples/golang-main-package/Makefile
+++ b/examples/golang-main-package/Makefile
@@ -22,8 +22,8 @@ $(SRCZIP): $(SRCS)
cd src ; zip ../$(SRCZIP) -r *
clean:
- wsk action delete $(PACKAGE)/$(NAME)
- rm $(BINZIP) $(SRCZIP) package.done
+ -$(WSK) action delete $(PACKAGE)/$(NAME)
+ -rm $(BINZIP) $(SRCZIP) package.done
test: test.json
$(WSK) action invoke test/$(NAME) -r
diff --git a/examples/golang-main-single/Makefile
b/examples/golang-main-single/Makefile
index 1c16fcc..8d49674 100644
--- a/examples/golang-main-single/Makefile
+++ b/examples/golang-main-single/Makefile
@@ -18,8 +18,8 @@ $(ZIP): $(SRC)
docker run -i $(OW_COMPILER) -compile $(MAIN) <$(SRC) >$(ZIP)
clean:
- wsk action delete $(PACKAGE)/$(NAME)
- rm $(ZIP) package.done
+ -$(WSK) action delete $(PACKAGE)/$(NAME)
+ -rm $(ZIP) package.done
test: test.json
$(WSK) action invoke test/$(NAME) -r
diff --git a/examples/golang-main-standalone/Makefile
b/examples/golang-main-standalone/Makefile
index 208ca99..42f41fa 100644
--- a/examples/golang-main-standalone/Makefile
+++ b/examples/golang-main-standalone/Makefile
@@ -18,8 +18,8 @@ $(ZIP): $(SRC)
docker run -i $(OW_COMPILER) -compile $(MAIN) <$(SRC) >$(ZIP)
clean:
- wsk action delete $(PACKAGE)/$(NAME)
- rm $(ZIP) package.done
+ -$(WSK) action delete $(PACKAGE)/$(NAME)
+ -rm $(ZIP) package.done
test: test.json
$(WSK) action invoke test/$(NAME) -r
diff --git a/examples/golang-hello-vendor/Makefile
b/examples/golang-main-vendor/Makefile
similarity index 80%
copy from examples/golang-hello-vendor/Makefile
copy to examples/golang-main-vendor/Makefile
index 8efada7..98a0931 100644
--- a/examples/golang-hello-vendor/Makefile
+++ b/examples/golang-main-vendor/Makefile
@@ -2,10 +2,10 @@ OW_USER?=openwhisk
OW_RUNTIME?=$(OW_USER)/actionloop
OW_COMPILER?=$(OW_USER)/actionloop-golang-v1.11
WSK?=wsk
-MAIN=hello
+MAIN=main
PACKAGE=test
-SRCS=src/$(MAIN).go src/hello/hello.go
-VENDORS=src/hello/vendor
+SRCS=src/main/main.go
+VENDORS=src/main/vendor
NAME=golang-$(MAIN)-vendor
BINZIP=$(MAIN)-bin.zip
SRCZIP=$(MAIN)-src.zip
@@ -14,10 +14,10 @@ deploy: package.done $(BINZIP)
$(WSK) action update $(PACKAGE)/$(NAME) $(BINZIP) --main $(MAIN)
--docker $(OW_RUNTIME)
devel: package.done $(SRCZIP)
- $(WSK) action update $(PACKAGE)/$(NAME) $(SRCZIP) --main $(MAIN)
--docker $(OW_RUNTIME)
+ $(WSK) action update $(PACKAGE)/$(NAME) $(SRCZIP) --main $(MAIN)
--docker $(OW_COMPILER)
src/%/vendor:
- cd $(@D) ; dep ensure
+ cd $(@D) ; GOPATH=$$PWD/../.. dep ensure
$(BINZIP): $(SRCS) $(VENDORS)
cd src ; zip - -r * | docker run -i $(OW_COMPILER) -compile $(MAIN)
>../$(BINZIP)
@@ -26,8 +26,8 @@ $(SRCZIP): $(SRCS) $(VENDORS)
cd src ; zip ../$(SRCZIP) -r *
clean:
- wsk action delete $(PACKAGE)/$(NAME)
- rm $(BINZIP) $(SRCZIP) package.done
+ -$(WSK) action delete $(PACKAGE)/$(NAME)
+ -rm $(BINZIP) $(SRCZIP) package.done
test: test.json
$(WSK) action invoke test/$(NAME) -r
diff --git a/examples/golang-main-vendor/src/main/Gopkg.lock
b/examples/golang-main-vendor/src/main/Gopkg.lock
new file mode 100644
index 0000000..4e31c6b
--- /dev/null
+++ b/examples/golang-main-vendor/src/main/Gopkg.lock
@@ -0,0 +1,25 @@
+# This file is autogenerated, do not edit; changes may be undone by the next
'dep ensure'.
+
+
+[[projects]]
+ digest = "1:6342a41a66687c0d0eb1f4d946447bfb808c5136adeb92903ed07972071e19ac"
+ name = "github.com/rs/zerolog"
+ packages = [
+ ".",
+ "internal/cbor",
+ "internal/json",
+ "log",
+ ]
+ pruneopts = "UT"
+ revision = "338f9bc14084d22cb8eeacd6492861f8449d715c"
+ version = "v1.9.1"
+
+[solve-meta]
+ analyzer-name = "dep"
+ analyzer-version = 1
+ input-imports = [
+ "github.com/rs/zerolog",
+ "github.com/rs/zerolog/log",
+ ]
+ solver-name = "gps-cdcl"
+ solver-version = 1
diff --git a/examples/golang-main-vendor/src/main/Gopkg.toml
b/examples/golang-main-vendor/src/main/Gopkg.toml
new file mode 100644
index 0000000..d080275
--- /dev/null
+++ b/examples/golang-main-vendor/src/main/Gopkg.toml
@@ -0,0 +1,34 @@
+# Gopkg.toml example
+#
+# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
+# for detailed Gopkg.toml documentation.
+#
+# required = ["github.com/user/thing/cmd/thing"]
+# ignored = ["github.com/user/project/pkgX",
"bitbucket.org/user/project/pkgA/pkgY"]
+#
+# [[constraint]]
+# name = "github.com/user/project"
+# version = "1.0.0"
+#
+# [[constraint]]
+# name = "github.com/user/project2"
+# branch = "dev"
+# source = "github.com/myfork/project2"
+#
+# [[override]]
+# name = "github.com/x/y"
+# version = "2.4.0"
+#
+# [prune]
+# non-go = false
+# go-tests = true
+# unused-packages = true
+
+
+[[constraint]]
+ name = "github.com/rs/zerolog"
+ version = "1.9.1"
+
+[prune]
+ go-tests = true
+ unused-packages = true
diff --git a/examples/golang-main-vendor/src/main/main.go
b/examples/golang-main-vendor/src/main/main.go
new file mode 100644
index 0000000..b687858
--- /dev/null
+++ b/examples/golang-main-vendor/src/main/main.go
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package main
+
+import (
+ "github.com/rs/zerolog"
+ "github.com/rs/zerolog/log"
+)
+
+func init() {
+ zerolog.TimeFieldFormat = ""
+}
+
+// Main function for the action
+func Main(obj map[string]interface{}) map[string]interface{} {
+ name, ok := obj["name"].(string)
+ if !ok {
+ name = "world"
+ }
+ log.Debug().Str("name", name).Msg("Hello")
+ msg := make(map[string]interface{})
+ msg["golang-main-vendor"] = "Hello, " + name + "!"
+ return msg
+}
diff --git a/openwhisk/initHandler.go b/openwhisk/initHandler.go
index 94454ae..73b5ffd 100644
--- a/openwhisk/initHandler.go
+++ b/openwhisk/initHandler.go
@@ -168,7 +168,8 @@ func (ap *ActionProxy) ExtractAndCompile(buf *[]byte, main
string) (string, erro
if err != nil {
return "", err
}
- if !isCompiled(binFile) {
+ // check only if the file exist
+ if _, err := os.Stat(binFile); os.IsNotExist(err) {
return "", fmt.Errorf("cannot compile")
}
return binFile, nil