Seed is a fully managed CI/CD pipeline for Serverless apps on AWS. Simply add your Git repository and IAM credentials and your entire team can git push to deploy updates to your Serverless app.

Seed currently supports the following:


SST v3 apps are not supported in Seed. You’ll need to use the SST Console instead.


Prerequisites

Seed needs very little configuration on your part and there is no CLI to install. But to add your project you need to:

  1. Add your project repository with your Git provider
  2. Create an IAM Role for your AWS account

To start with, Seed will ask you to create a new app by adding your project from your repository.

Create a new app

Once you select your Git provider (GitHub for example), you’ll be asked to login to your Github.

Login to GitHub

Here you’ll be asked to authorize Seed. Make sure to select the Repositories and Organization access you need.

Authorize Seed on GitHub

Once authorized, you can select your repo. Seed will look for all the serverless.yml files in your repo.

If you are unable to find your repo, it might be because Seed doesn’t have the permissions to access your repo. You can read about how to fix this here.

Auto-detect serverless.yml for new app

If detected, you can select to add a service. You can always add other services later.

Confirm default service for new app

If the services could not be detected, you can add it manually.

Pick different default service for new app

Here we are assuming that you are trying to add a Serverless Framework service. If instead you want to add an SST service, make sure to set it in the Service Type dropdown.

Next, Seed will create a dev and prod stage (or environment) for your app. Note that, you’ll need to change the names to match the stage names you are using to deploy your app. This is important because Seed will deploy your app using the serverless deploy --stage $STAGE_NAME command. Here $STAGE_NAME is the name.

Seed deploys to your environments using the stage name.

You also need to configure the stage with the AWS IAM credentials needed to deploy to it. By default, Seed will use the same credentials to deploy to production. You can change this if your production environment is in a different AWS account.

Configure IAM user for a new app

If you’ve added an app before, you have the option of configuring your new app with the settings of an existing app. Hit the Copy Settings tab.

Here you can select one of your existing apps.

Select existing app settings for new app

A personal app can only inherit the settings from another personal app. And the same applies to organization apps.

Next, let’s look at how to create an AWS IAM Role.