Skip to content

:octocat: A Github Action for deploying with the Serverless Framework

License

Notifications You must be signed in to change notification settings

serverless/github-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 

Repository files navigation

Github Action for Serverless

This Action wraps the Serverless Framework to enable common Serverless commands.

This project is looking for maintainers!

If you would like to be a maintainer of this project, please reach out to one of the active Serverless organization members to express your interest.

Welcome, and thanks in advance for your help!

Usage

An example workflow to deploy a project with serverless v3:

name: Deploy master branch

on:
  push:
    branches:
      - master

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x]
    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm ci
    - name: serverless deploy
      uses: serverless/[email protected]
      with:
        args: deploy
      env:
        SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
        # or if using AWS credentials directly
        # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Usage with serverless plugins

Change your action in this way, according to this issue, thanks to @matthewpoer:

    - name: Install Plugin and Deploy
      uses: serverless/[email protected]
      with:
        args: -c "serverless plugin install --name <plugin-name> && serverless deploy"
        entrypoint: /bin/sh

Fix "This command can only be run in a Serverless service directory" error

Change your action in this way, according to this issue, thanks to @nikhuber:

    - name: Enter dir and deploy
      uses: serverless/[email protected]
      with:
        args: -c "cd ./<your-dir> && serverless deploy"
        entrypoint: /bin/sh

Use serverless v1 or v2

Change the action with one of the following:

uses: serverless/github-action@v1
uses: serverless/github-action@v2

License

The Dockerfile and associated scripts and documentation in this project are released under the Apache-2 license.