Packages and plugins must be deployed before they can be used.
New versions of your project automatically become the “default” version when new instances are created. Unless an instance specifically requests a version, this new default version will be used.
Deploying with the Steamship CLI#
You can deploy a package or plugin with the Steamship CLI with single command from the project root (make sure your python environment is active):
If you don’t have a
steamship.json yet, the deploy process will create one. After the command exits, wait a few minutes for your new infrastructure to be ready in the cloud.
New instances of your project will then be directed to the new version.
Deploying via GitHub Actions#
Each package and plugin project is created from a a template that has been pre-configured to auto-deploy within GitHub Actions when certain situations occur.
Before you deploy, make sure the
version fields in your
steamship.json file are set:
Production deployments occur upon:
Pushes to SemVer-style tags, prefixed with
Staging deployments occur upon:
When pushing to a SemVer-style tag, the tag’s version must match the
version contained within
steamship.json. Note that while the GitHub
branch must start with
v, the version identifier in
steamship.json should omit it.
When pushing to
staging, the version contained in
steamship.json is used.
Automated Deployment Setup#
Automated deployments can only occur if you have set the following GitHub secrets:
STEAMSHIP_KEYGitHub repository secret
STEAMSHIP_API_BASEGitHub repository secret (optional)
STEAMSHIP_KEY_STAGINGGitHub repository secret
STEAMSHIP_API_BASE_STAGINGGitHub repository secret (optional)
Setting the following variable will additionally trigger Slack notifications upon automated deployments:
STEAMSHIP_SLACK_DEPLOYMENT_WEBHOOKSlack notification webhook URL (optional)
Modifying or disabling automated deployments#
Automated deployment is triggered by the GitHub Actions workflow in
.github/workflows/deploy.yml. This file, in turn, invokes the
To modify or disable automated deployments, remove, comment out, or modify that file.
The deployment fails because the version already exists#
This means the version specified in
steamship.json has already been
registered with Steamship. Simply update the version in
steamship.json to an identifier that has not yet been used.
The deployment fails because the tag does not match the manifest file#
This means you have tried to push a branch with a semver-style tag (like
v1.2.3), resulting in a version deployment whose name must match
that tag without the
v prefix (
1.2.3). Make sure the version
steamship.json matches this string.
For example, if you are deploying branch
field of your
steamship.json file must be
The deployment fails with an authentication error#
If you’re deploying from GitHub Actions, make sure you’re set your
STEAMSHIP_KEY in your GitHub secrets. If you’re deploying from your
local machine, make sure you’ve authenticated with the Steamship CLI.