This Action wraps the Serverless Framework CLI to enable common commands. See their documentation for usage and provider selection.
You'll first have to have a Serverless project as outlined in Serverless's Getting Started. Suppose your provider of choice were Amazon AWS. A workflow could look as follows to install dependencies, and deploy to a Lambda function.
Note: We're first using the NPM Action to install project dependencies, then running serverless deploy
via the action.
workflow "Deploy via Serverless" {
on = "push"
resolves = ["deploy"]
}
action "install" {
uses = "actions/npm@master"
args = "install"
}
action "deploy" {
needs = ["install"]
uses = "aaronpanch/action-serverless@master"
args = "deploy"
secrets = [
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
]
}
Depending on the Serverless provider chosen, you'll need to supply appropriate credentials. The above example illustrates a typical AWS scenario, but Serverless supports other cloud providers.
Typically, with any cloud provider, their particular authentication environment params are Required.
SERVICE_ROOT
- Optional. To specify a particular subdirectory of your project that contains the Serverless service (the directory with theserverless.yml
file) you can specify aSERVICE_ROOT
. This action willcd
into that directory then execute commands. The default root is.
(project root).
To navigate and deploy two services (in this example "Users" and "Admins") in different subdirectories:
action "Deploy Users Service" {
uses = "aaronpanch/action-serverless@master"
args = "deploy"
env = {
SERVICE_ROOT = "users_service"
}
secrets = [
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
]
}
action "Deploy Admin Service" {
uses = "aaronpanch/action-serverless@master"
args = "deploy"
env = {
SERVICE_ROOT = "admin_service"
}
secrets = [
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
]
}