This action provides the following functionality for GitHub Actions users:
- Easily install Serverless without Node.js or npm.
- The action can also cache the distribution of the required standalone Serverless binary and add it to the system PATH.
Once you've utilized the action, other steps in the same job can run various Serverless commands using GitHub Actions run syntax. This enables most Serverless commands to function similarly to how they do on your local command line.
This action can be run on ubuntu-latest
and macos-latest
GitHub Actions runners.
The default configuration installs the latest version of Serverless CLI
Basic:
steps:
- uses: Teakowa/setup-serverless@v3
with:
serverless_version: 3.9.0
provider: aws
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
- run: sls deploy
The serverless_version
input is optional. If not supplied, the serverless version from the latest release will be used.
The action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Serverless. It will pull latest
versions from serverless-versions releases.
The serverless_version
input not yet support the Semantic Versioning Specification, We have plans to add this support, and welcome PR.
Examples:
- Specific versions:
2.71.0
,3.9.0
- Latest release:
latest
latest
always install to the latest release version.
- AWS
- Azure
- Tencent
- knative
- Alibaba Cloud
- cloudflare workers
- fn
- kubeless
- openwhisk
Some providers need to be configured with credentials files, and this process will be performed by the provider
input, which will automatically generate the corresponding credentials file when the provider
contains these providers.
Credentials for AWS can be configured.
steps:
- uses: Teakowa/setup-serverless@v3
with:
provider: aws
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
- run: sls deploy
Credentials for Azure can be configured.
steps:
- uses: Teakowa/setup-serverless@v3
with:
provider: azure
env:
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID}}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID}}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET}}
- run: sls deploy
Credentials for Tencent Cloud can be configured.
steps:
- uses: Teakowa/setup-serverless@v3
with:
provider: tencent
env:
TENCENT_APPID: ${{ secrets.TENCENT_APP_ID }}
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY}}
- run: sls deploy
Note If you need to use Tencent Cloud in China, you need to set the environment variable
SERVERLESS_PLATFORM_VENDOR
to tencent.You don't need
TENCENT_TOKEN
, because it is not currently supported.
steps:
- uses: Teakowa/setup-serverless@v3
with:
provider: tencent
env:
TENCENT_APPID: ${{ secrets.TENCENT_APP_ID }}
TENCENT_SECRET_ID: ${{ secrets.TENCENT_SECRET_ID }}
TENCENT_SECRET_KEY: ${{ secrets.TENCENT_SECRET_KEY}}
SERVERLESS_PLATFORM_VENDOR: tencent # Must be set here to use in China
- run: sls deploy
Credentials for Aliyun can be configured.
steps:
- uses: Teakowa/setup-serverless@v3
with:
provider: aliyun
env:
ALICLOUD_ACCOUNT_ID: ${{ secrets.ALICLOUD_ACCOUNT_ID }}
ALICLOUD_ACCESS_KEY: ${{ secrets.ALICLOUD_ACCESS_KEY }}
ALICLOUD_SECRET_KEY: ${{ secrets.ALICLOUD_SECRET_KEY}}
- run: sls deploy
Credentials for Cloudflare Workers can be configured.
steps:
- uses: Teakowa/setup-serverless@v3
with:
provider: cloudflare-workers
env:
CLOUDFLARE_AUTH_KEY: ${{ secrets.CLOUDFLARE_AUTH_KEY }}
CLOUDFLARE_AUTH_EMAIL: ${{ secrets.CLOUDFLARE_AUTH_EMAIL }}
- name: Deploy
run: |
sls plugin install -n serverless-cloudflare-workers
sls deploy
env:
CLOUDFLARE_AUTH_KEY: ${{ secrets.CLOUDFLARE_AUTH_KEY }}
CLOUDFLARE_AUTH_EMAIL: ${{ secrets.CLOUDFLARE_AUTH_EMAIL }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
CLOUDFLARE_WORKER_NAME: ${{ secrets.CLOUDFLARE_WORKER_NAME }}
The action supports the following inputs:
serverless_version
: (optional) The version of Serverless CLI to install.provider
: (required) The infrastructure provider of serverless framework. All characters must be lowercase.
- Use the
v3
tag assetup-serverless
version. It is a rolling tag and is synced with the latest minor and patch releases. Withv3
you automatically get the bug fixes, security patches, new features and support for latestsetup-serverless
releases. - Semantic release versions can also be used. It is recommended to use dependabot with semantic versioning to keep the actions in your workflows up to date.
Contributions, issues and feature requests are welcome! Feel free to check issues page.
Thanks goes to these wonderful people (emoji key):
ƬΣΛKӨЩΛ 💻 📖 🎨 📆 |
||||||
Add your contributions |
This project follows the all-contributors specification. Contributions of any kind welcome!
The code in this repository, unless otherwise noted, is under the terms of both the Anti 996 License and the Apache License (Version 2.0).