Skip to content

GitHub Action for interacting with the Serverless CLI

License

Notifications You must be signed in to change notification settings

robertsimmons514/action-serverless

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Action for Serverless

This Action wraps the Serverless Framework CLI to enable common commands. See their documentation for usage and provider selection.

Usage

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",
  ]
}

Secrets

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.

Environment Variables

  • SERVICE_ROOT - Optional. To specify a particular subdirectory of your project that contains the Serverless service (the directory with the serverless.yml file) you can specify a SERVICE_ROOT. This action will cd into that directory then execute commands. The default root is . (project root).

Example

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",
  ]
}

About

GitHub Action for interacting with the Serverless CLI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dockerfile 90.1%
  • Shell 9.9%