openwhisk-action-builder
v0.0.6
Published
Library and Commandline Tools to build and deploy OpenWhisk Actions
Downloads
5
Readme
Openwhisk Action Builder
Library and Commandline tool support for building and deploying OpenWhisk actions.
Status
Setup
Add this wrapper as dev dependency:
# Add OpenWhisk wrapper as dependency npm add openwhisk-action-builder
add a build script to your package.json:
"scripts": { "build": "./node_modules/.bin/wsk-builder" }
Build the OpenWhisk action
$ npm run build ... Created action: dist/my-example.zip.
Deploy the OpenWhisk action
$ wsk action update ....
The deploy parameters can be specifies in the CLI via -p
. See below.
CLI
The command line interface wsk-builder
can either be invoked via ./node_modules/.bin/wsk-builder
.
you can also use npx: npx wsk-builder
or install it globally npm install -g openwhisk-action-builder
.
$ wsk-builder --help
Operation Options
--deploy Automatically deploy to OpenWhisk [default: false]
--test Invoke action after deployment [default: false]
--hints, --no-hints Show additional hints for deployment [default: true]
OpenWhisk Action Options
--name OpenWhisk action name. Can be prefixed with package.
--kind Specifies the action kind. eg: nodejs:10-fat [default: ""]
--docker Specifies a docker image.
[default: "tripodsan/probot-ow-nodejs8:latest"]
--params, -p Include the given action param. can be json or env.
[array] [default: []]
--params-file, -f Include the given action param from a file; can be json or
env. [array] [default: []]
Bundling Options
--static, -s Includes a static file into the archive [array] [default: []]
GitHub Options
--github-key Specify the GitHub private key file
Options:
--version Show version number [boolean]
--verbose, -v [default: false]
--help Show help [boolean]
for more information, find our manual at
https://github.com/tripodsan/probot-serverless-openwhisk
With no arguments,the wsk-builder
just bundles your code into the respective action.zip
:
Automatically deploy to openwhisk
When given the --deploy
, the wskbot
will try to deploy it ot OpenWhisk using the settings from
~/.wskprops
. Alternatively, you can also set the WSK_NAMESPACE
, WSK_AUTH
, WSK_APIHOST
in your
environment or .env
file.
$ wsk-builder --deploy --no-hints
ok: created action: dist/my-example.zip.
ok: updated action tripod/my-example
Automatically test the deployed action
In order to quickly test the deployed action, wsk-builder
can send a GET
request to the action url.
$ wsk-builder --deploy --no-hints --test
ok: created action: dist/my-example.zip.
ok: updated action tripod/my-example
--: requesting: https://runtime.adobe.io/api/v1/web/tripod/default/my-example ...
ok: 200
Including action parameters
Action parameters can be defined via -p
, either as json on env string, or json or env file.
Examples:
# specify as env string
wskbot -p MY_TOKEN=1234 -p MY_PWD=foo
# specify as json string
wskbot -p '{ "MY_TOKEN": 1234, "MY_PWD": "foo" }'
# specify as env file
wskbot -p .env
# specify as json file
wskbot -p params.json
# and a combination of the above
wskbot -p .env -p params.json -p MY_TOKEN=123
Including static files
Adding static files, i.e. files that are not referenced from the index.js
and detected by webpack,
can be done via the -s
parameter. they are always put into the root directory of the archive.
Example:
# include an image
wsk-builder -s logo.png
Specifying arguments in the package.json
Instead of passing all the arguments via command line, you can also specify them in the package.json
in the wsk
object. eg:
{
...
"scripts": {
"build": "./node_modules/.bin/wsk-builder -v",
"deploy": "./node_modules/.bin/wsk-builder -v --deploy --test"
},
"wsk": {
"name": "my-test-action",
"params-file": [
"secrets/secrets.env"
],
"externals": [
"fs-extra",
"js-yaml",
"dotenv",
"bunyan",
"bunyan-loggly",
"bunyan-syslog",
"bunyan-format"
],
"docker": "tripodsan/probot-ow-nodejs8:latest"
},
...
}
Notes
Bundling
The action is created using webpack to create bundle for the sources and then creates a zip archive
with the bundle, a package.json
, the private key files and the .env
.
Contributing
If you have suggestions for how this OpenWhisk probot wrapper could be improved, or want to report a bug, open an issue! We'd love all and any contributions.
For more, check out the Contributing Guide.