GithubHelp home page GithubHelp logo

serverless / github-action Goto Github PK

View Code? Open in Web Editor NEW
648.0 20.0 169.0 31 KB

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

License: Apache License 2.0

Dockerfile 100.00%
github-actions serverless serverless-framework

github-action's Introduction

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.

github-action's People

Contributors

anandg112 avatar danielelisenberg avatar davideviolante avatar drieshooghe avatar dschep avatar gtramontina avatar maciossek avatar medikoo avatar mitchheddles avatar o-az avatar xeeo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

github-action's Issues

Error: AWS provider credentials not found in Github Action

I'm creating a new project for creating lambdas. I created a Github Action for deploying my lambdas to AWS, however, I'm getting this error:

Error:
AWS provider credentials not found. Learn how to set up AWS provider credentials in our docs here: <http://slss.io/aws-creds-setup>.

Locally is working fine, I can deploy my lambdas without problems.

This is my serverless.yml file.

service: functions
frameworkVersion: "3"

provider:
  name: aws
  runtime: nodejs14.x

# Lambdas functions
functions:
  hello:
    handler: src/functions/hello/index.handler
    events:
      - httpApi:
          path: /lambdas/hello
          method: get

# Plugins
plugins:
  - serverless-plugin-typescript
  - serverless-offline

And this is the Github Action that I'm trying to run.

name: Deploy Lambdas Staging

on:
  push:
    branches:
      - develop

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16.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: -c "serverless plugin install --name serverless-plugin-typescript && serverless deploy"
          entrypoint: /bin/sh
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          SLS_DEBUG: 1

The secrets are defined in my Github repository. I'm not sure if a need to do something else.

Deploy failing: This command can only be run in a Serverless service directory.

I have a mono repo project and a separate directory that contains the serverless yaml file. Is there a way to set the directory to execute from in the github action.

I tried doing something like this:

    - name: Navigate to serverless
      run: cd serverless

    - name: Serverless Deploy
      uses: serverless/github-action@master
      with:
        args: deploy
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

but without any luck.

Deploying from a subdirectory

Hi,

I would like to have the following project structure but I couldn't make it work with the v2, wondering if it's now supported.

.github
... workflows
backend
... serverless.yml
... all other backend files
frontend
... frontend files

Basically, it doesn't seem possible to define a working directory for the serverless app.
This is what I'm using for the frontend directory in my pipeline.yaml, I would like to do something similar for the backend directory.

    - name: Building Frontend
      run: npm run build
      working-directory: ${{ env.working-directory-frontend }}

    - name: Deploy to S3
      uses: jakejarvis/s3-sync-action@master
      with:
        args: --acl public-read --follow-symlinks --delete
      env:
        AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_REGION: 'us-west-2'
        SOURCE_DIR: "frontend/dist" 

Thanks!

Error: spawnSync docker ENOENT

Here's the relevant connfig in my action:

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - run: yarn install
      - name: Test serverless invoke locally
        uses: serverless/github-action@master
        with:
          args: invoke local -f check-if-email-exists-serverless -d "$(cat test/payload.json)"
        env:
          SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}

I get the following error

/usr/bin/docker run --name dfb27aa9b0e04814be28211b63b4f8c5f04_6461eb --label 488dfb --workdir /github/workspace --rm -e SERVERLESS_ACCESS_KEY -e INPUT_ARGS -e HOME -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e RUNNER_OS -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/microservices/microservices":"/github/workspace" 488dfb:27aa9b0e04814be28211b63b4f8c5f04 invoke local -f check-if-email-exists-serverless -d "$(cat test/payload.json)"
Serverless: Warning the Serverless Dashboard doesn't support the following runtime: rust
Serverless: Building native Rust check-if-email-exists-serverless func...
Serverless: Dockerized Rust build encountered an error: Error: spawnSync docker ENOENT null.
 
  Error --------------------------------------------------
 
  Error: Error: spawnSync docker ENOENT
      at functions.forEach.funcName (/github/workspace/node_modules/serverless-rust/index.js:129:15)
      at Array.forEach (<anonymous>)
      at RustPlugin.build (/github/workspace/node_modules/serverless-rust/index.js:110:22)
      at BbPromise.reduce (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:505:55)
      at tryCatcher (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)
      at Object.gotValue (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/reduce.js:168:18)
      at Object.gotAccum (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/reduce.js:155:25)
      at Object.tryCatcher (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:547:31)
      at Promise._settlePromise (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:604:18)
      at Promise._settlePromise0 (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:649:10)
      at Promise._settlePromises (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18)
      at _drainQueueStep (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:93:12)
      at _drainQueue (/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:86:9)

All the code is open source:

A quick google search links me to this issue: serverless/serverless#5663 (comment)

This is because that project uses serverless-rust which depends on docker. @softprops, you might want to add info about the docker requirement in the READMEs of these repos 😉

From what I understand, Docker is not running in the Github Actions VM. Is it possible to run Docker?

No such file or directory 'package.json'

I have the following steps in my github action .yml file:

      - uses: actions/checkout@v2
      - name: Enter serverless dir and deploy
         uses: serverless/[email protected]
         with:
           args: -c "cd ./src/serverless && serverless plugin install --name serverless-plugin-tracing && serverless deploy"
           entrypoint: /bin/sh

But I'm getting an error, despite the fact that I do have a package.json file in my src/serverless folder:
npm ERR! enoent ENOENT: no such file or directory, open '/github/home/.npm/_cacache/tmp/jrJNSF/package.json'

Does anyone know of a workaround/solution for this?

Deploy not working

My serverless deploy to AWS was working fine this morning and now all of a sudden its failing and throwing this error:

Serverless: Publishing service to the Serverless Dashboard...
TypeError: Cannot read property 'fetch' of undefined
at parseDeploymentData (/opt/hostedtoolcache/node/10.22.0/x64/lib/node_modules/serverless/node_modules/@serverless/enterprise-plugin/lib/deployment/parse.js:159:65)
at process._tickCallback (internal/process/next_tick.js:68:7)

Type Error ---------------------------------------------

TypeError: Cannot read property 'fetch' of undefined
at parseDeploymentData (/opt/hostedtoolcache/node/10.22.0/x64/lib/node_modules/serverless/node_modules/@serverless/enterprise-plugin/lib/deployment/parse.js:159:65)
at process._tickCallback (internal/process/next_tick.js:68:7)

Do you know whats wrong?

Verified github action

Would it be possible to get the verified status for this action on github? This could help us adopt this because some enterprise organizations require this certification.

error nodejs yarn project?

npm ERR! cipm can only install packages with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or later to generate it, then try again.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-01-29T12_42_28_852Z-debug.log

I think this github actions didn't read yarn.lock in project
will anyone help to make this happen?

Document capture of `Outputs` and `sls info` results

This took a while to figure out so I'd like to share and advise that it'd be nice to see in the README or elsewhere in the documentation.

My use case was that I needed to capture some of my resources.Outputs from a serverless deployment for use with later scripting. For example, here's an excerpt from my serverless.yml file:

resources:
  Resources:
    host:
      Type: AWS::EC2::Instance
      Properties:
        ImageId: ami-0f2b4fc905b0bd1f1
        InstanceType: t2.medium
  Outputs:
    PublicDnsName:
      Description: "host public URL"
      Value: !GetAtt host.PublicDnsName

With that in place I can run sls info --verbose and capture in that output is the desired PublicDnsName but I have to grep and adjust for that, e.g.

sls info --verbose | grep PublicDnsName | cut -c 16-

All that said, I found it difficult to perform that scrub-and-grab sequence in a Github Action using this container, but finally landed on overwriting the entrypoint and prefixing my command with a -c, which is appended as an argument to the bash invocation. It's a bit confusing to me still, but it's functional:

name: Deploy to Amazon EC2
on:
  push:
    branches:
      - master
jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Run serverless deployment
      uses: serverless/[email protected]
      with:
        args: deploy --stage=dev --verbose
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_DEV }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_DEV }}
        SLS_DEBUG: 1
    - name: Export sls/aws-ec2 host
      uses: serverless/[email protected]
      with:
        args: -c "serverless info --stage=dev --verbose | grep PublicDnsName | cut -c 16- > host.txt"
        entrypoint: /bin/bash
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_DEV }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_DEV }}
        SLS_DEBUG: 1
    - name: Show site URL for review and testing
      run: |
        export host=$(cat host.txt)
        echo http://$host/

Upgrade to latest version of serverless

Currently in the dockerfile we are locking serverless install to v2.1 while the current version is v2.17.1

This would cause people using newer features to get unknown directive/rule warning and incompatibility issues.
The 2 ways I can think of solving this is:-

  1. Upgrade the dockerfile to version 2.17.0, but that would require manual upgrading whenever new version is released
  2. Change it to RUN npm i -g serverless without locking to specific version

I think second option is better. I am willing to open a PR for any of the case.

`pipenv lock --keep-outdated` Exited with code 1

Action failed with the error pipenv lock --keep-outdated Exited with code 1

      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: "3.10"
        
      - name: Setup NodeJS
        uses: actions/setup-node@v3
        with:
          node-version: "18.4.0"
      
      - name: Serverless deploy
        uses: serverless/github-action@v3
        env:
          AWS_ACCESS_KEY_ID: xxx
          AWS_SECRET_ACCESS_KEY: xxx
        with:
          args: -c "serverless create_domain  && serverless deploy"
          entrypoint: /bin/sh

"python3.7 not found! Try the pythonBin option."

Using Python 3.7 in my serverless.yml:

provider:
  runtime: python3.7

When I create a pipeline using this action it fails with

Error --------------------------------------------------
 
  python3.7 not found! Try the pythonBin option.

What Python version(s) are supported, could we add 3.7?

DOTENV cannot find .env file

Hi guys, assuming that

  env:
    SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
    # or if using AWS creds directly
    # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Serverless said: DOTENV: Could not find .env file.

Is necesary to create .env in environment of actions?

Add support for plugins or document how

There is currently no support for plugins and there should one. I suggest maybe an input where entrypoint would first install plugins and then run the args.

Question: How to set lambda environment variable?

Hello,

Is it possible to set environment variables for lambda from this action?

I can see such thing seems to be here using aws-lambda-deploy .

- name: AWS Lambda Deploy
    if: github.ref == 'refs/heads/master'
    uses: appleboy/lambda-action@master
    with:
      aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
      aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      aws_region: ${{ secrets.AWS_REGION }}
      function_name: gorush
      zip_file: output.zip
      dry_run: true
+       environment: foo=bar,author=appleboy

EACCES: permission denied

My code:

name: Deploy master branch

on:
  push:
    branches:
      - master

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14.x]
    steps:
    - uses: actions/checkout@v2

    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm ci

    - name: Deploy to eu-west-3
      uses: serverless/[email protected]
      with:
        args: deploy --stage products-new --region eu-west-3
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

    - name: Deploy to us-west-2
      uses: serverless/[email protected]
      with:
        args: deploy --stage products-new --region us-west-2
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

    - name: Deploy to us-east-1
      uses: serverless/[email protected]
      with:
        args: deploy --stage products-new --region us-east-1
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
   prebuild-install WARN install EACCES: permission denied, access '/root/.npm'
  gyp WARN EACCES current user ("nobody") does not have permission to access the dev dir "/root/.cache/node-gyp/14.18.2"
  gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/serverless/node_modules/snappy/.node-gyp"
  gyp WARN install got an error, rolling back install
  gyp WARN install got an error, rolling back install
  gyp ERR! configure error 
  gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/serverless/node_modules/snappy/.node-gyp'
  gyp ERR! System Linux 5.11.0-1022-azure
  gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
  gyp ERR! cwd /usr/lib/node_modules/serverless/node_modules/snappy
  gyp ERR! node -v v14.18.2
  gyp ERR! node-gyp -v v5.1.0
  gyp ERR! not ok 

I tried with version 2.17.1 and with master, and its the same error.

Typo on marketplace for this action

When you go to the marketplace for this action and click on the "Use latest version" button to copy the yaml snippet, the modal reads "Wraps the Serverless Frameork to enable common Serverless commands"

Node version set to 12, still serverless is using node 14

With latest serverless/github-action@master
I'm getting sls deploy error at fullstack-serverless plugin step

image

Error: Missing binding /github/workspace/client/events-app/node_modules/node-sass/vendor/linux-x64-83/binding.node Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 14.x

image

serverless.yml node version is set to 12 as well

provider:
  name: aws
  logRetentionInDays: 7
  runtime: nodejs12.x

Updating to v2.18.0 breaks recommended plugin install

the recommended setup from #28 no longer works due to bash missing in the image

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown.

Builds of docker containers fail

As this run inside of a Docker container, Docker itself isn't available for building docker images for Lambda functions.

Ideally this container should be updated to have docker installed and the volume mapping to the master docker service, or at least a note decsribing the limitation or workaround on the main README.md file.

Deploy fails with "This command can only be run in a Serverless service directory."

I have the following workflow file at .github/workflows/deploy-serverless.yml. It is identical to the one in the README except for the npm ci line.

name: Deploy serverless function

on:
  push:
    branches:
      - master

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x]
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - name: serverless deploy
      uses: serverless/github-action@master
      with:
        args: deploy
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

When I run this action it fails at the step serverless deploy with the following error:

  Serverless Error ---------------------------------------
 
  This command can only be run in a Serverless service directory. Make sure to reference a valid config file in the current working directory if you're using a custom config file
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              12.19.0
     Framework Version:         2.1.0
     Plugin Version:            4.0.4
     SDK Version:               2.3.2
     Components Version:        3.2.1

Am I supposed to put the workflow file in my service directory? If yes how will github find it and run it? Maybe I'm missing something obvious here so I'd appreciate your help.

Thanks

PS: I can manually deploy my code with no issues.

[suggestions] Ideas to make this github-action more useful

Hello lovely people of Serverless.

This Github Action has been super handy in automating my deployments and I really appreciate that Serverless is offering/hosting an official Github Action. Here are some ideas/suggestions on what I think would help make this action even more useful

  1. Let users specify which version of serverless to use: there are 26 forks of this project and about 20 of them (75%) seem to have only done it to change what version used.
  2. Indicate what directory to run the command out of (don't assume just the root/base directory): it's fairly common to have a single repository with multiple independent serverless projects which need to be deployed separately.

If you guys are open to contributions and like what I'm suggesting above, I would be willing to open a PR that adds this functionality.
cc: @dschep

Support for multiple serverless.yml files

I have a monorepo which holds three different Serverless projects. When deploying manually I can simply cd in to each directory and run sls deploy.

When using the GitHub workflow, is there a way to specify which directory to use as the "base" directory?

I tried using the working-directory property offered by Github Workflow, but that property can not be used with Docker-based actions.

v1.82.0 Dockerfile installs the latest serverless from npm (which is now v2.0.0 as of a few hours ago)

Ever since the new serverless release v2 is out (https://github.com/serverless/serverless/releases/tag/v2.0.0), I've been unable to deploy my v1 project with github-action v1.82.0.

Failing step from my GitHub Actions pipeline:

     - name: serverless deploy
        uses: serverless/[email protected]
        with:
          args: deploy

Output from the serverless deploy step:

  Serverless Error ---------------------------------------
 
  The Serverless version (2.0.0) does not satisfy the "frameworkVersion" (1) in serverless.yml
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              12.18.3
     Framework Version:         2.0.0
     Plugin Version:            4.0.2
     SDK Version:               2.3.1
     Components Version:        3.1.2

Framework version from my serverless.yml:

frameworkVersion: '1'

I am suspecting that the following line in v1.82.0 (https://github.com/serverless/github-action/blob/v1.82.0/Dockerfile#L14):

RUN npm i -g serverless

should have been

RUN npm i -g [email protected]

Is this a bug, or is the latest tag for serverless/github-action actually designed to pull the latest version for some reason?

EDIT: Added output from the failing pipeline step.

pipenv not found

Hey,

I have a project with dependencies managed with Pipfile.

I tried using this action to deploy, yet had an error:
Error: pipenv not found! Install it with 'pip install pipenv'.
Added a step before to install pipenv but it isn't picking up

What is the solution to this?

Cannot deploy: you are not currently logged in

name: Deploy
on:
    push:
        branches:
            - master
jobs:
    deploy:
        name: Deployment
        runs-on: ubuntu-latest
        strategy:
            matrix:
                stages:
                    - stage: 'prod'
                      AWS_SECRET_ACCESS_KEY: 'AWS_SECRET_ACCESS_KEY_PROD'
                      AWS_ACCESS_KEY_ID: 'AWS_ACCESS_KEY_ID_PROD'
        steps:
            - name: Checkout
              uses: actions/checkout@v2
            - name: npm install and build
              run: npm install
            - name: Install VPC Plugin and Deploy
              uses: serverless/[email protected]
              with:
                  args: -c "serverless deploy --stage=${{ matrix.stages.stage }} --verbose"
                  entrypoint: /bin/bash
              env:
                  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
                  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

Screenshot 2020-06-26 at 17 21 19

I added GitHub to serverless and my repos are listing there

The request signature we calculated does not match the signature you provided

I'm trying to deploy a serverless function through github actions but receive the following error:

The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

I've setup the secrets on github and I've also manually deployed locally using:

serverless deploy --key {key} --secret {secret}

And that successfully creates the application.

Any advice?

Edit

I believe it's related to permissions within AWS so I will close.

Deploy python function

Hey,
I am currently unsucessfully trying to deploy a python serverless function with the github action.
My deploy.yml:

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-20.04
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version-file: '.python-version'
      - uses: actions/setup-node@v3
        with:
          node-version-file: '.nvmrc'
      - run: npm ci
      - name: Deploy
        uses: serverless/[email protected]
        with:
          args: deploy --stage ${{ github.ref_name }} --verbose
        env:
          SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}

I also tried it with the approach suggested in the README.md, using

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

but it did not work either. (If I am understanding the workflow correctly, npm ci should install the plugin, and the error message is coming from the plugin, so I think it should work either way)

The error I am getting is:

Running "serverless" from node_modules

Deploying <service> to stage staging (eu-central-1, "<provider>" provider)

Generated requirements from /github/workspace/requirements.txt in /github/workspace/.serverless/requirements.txt
Installing requirements from "/github/home/.cache/serverless-python-requirements/f8090527365eda7859729a5727d2f20270cee426c486e19c25ce91c8df2a8a66_x86_64_slspyc/requirements.txt"
Using download cache directory /github/home/.cache/serverless-python-requirements/downloadCacheslspyc

× Stack <service>-staging failed to deploy (0s)
Environment: linux, node 16.16.0, framework 3.21.0 (local) 3.21.0v (global), plugin 6.2.2, SDK 4.3.2
Credentials: Serverless Dashboard, "<provider>" provider (https://app.serverless.com/<provider>)
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues

Error:
Error: `python3.9 -m pip help install` Exited with code 1
    at ChildProcess.<anonymous> (/github/workspace/node_modules/child-process-ext/spawn.js:38:8)
    at ChildProcess.emit (node:events:527:28)
    at ChildProcess.emit (node:domain:475:12)
    at maybeClose (node:internal/child_process:1092:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)

I think the error occurs here, but I can't quite grasp why the plugin should not be able to access python?

Do you know how to fix this?

Push latest version to Market Place

Github marketplace still shows only 1.53 version available in the marketplace. How can I access the latest version of serverless github action?

Add examples for using Serverless Plugins

Sharing an example of using this Action with one or more SLS Serverless plugins. Would be nice to add some notes around this to the README.md. The key is to set both args and entrypoint on the step.

Similar tactic is used in #26 to capture resources.Outputs data.

name: Deploy
on:
  push:
    branches:
      - master
jobs:
  deploy:
    name: Deployment
    runs-on: ubuntu-latest
    strategy:
      matrix:
        stages:
          - stage: 'dev'
            AWS_SECRET_ACCESS_KEY: 'AWS_SECRET_ACCESS_KEY_DEV'
            AWS_ACCESS_KEY_ID: 'AWS_ACCESS_KEY_ID_DEV'
          - stage: 'prod'
            AWS_SECRET_ACCESS_KEY: 'AWS_SECRET_ACCESS_KEY_PROD'
            AWS_ACCESS_KEY_ID: 'AWS_ACCESS_KEY_ID_PROD'
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Install VPC Plugin and Deploy
      uses: serverless/[email protected]
      with:
        args: -c "serverless plugin install --name serverless-vpc-discovery && serverless deploy --stage=${{ matrix.stages.stage }} --verbose"
        entrypoint: /bin/bash
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets[matrix.stages.AWS_ACCESS_KEY_ID] }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets[matrix.stages.AWS_SECRET_ACCESS_KEY] }}
        SLS_DEBUG: 1

libc.musl-x86_64.so.1: cannot open shared object file:

Hi, recently I added the following workflow to my project:

name: Deploy main branch

on:
  push:
    branches:
      - main

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14.x]
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install Plugin and Deploy
        uses: serverless/github-action@v3
        with:
          args: -c "serverless plugin install --name serverless-python-requirements && serverless deploy --stage prod --verbose"
          entrypoint: /bin/sh
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

The functions that have pydantic as a dependency, suddenly throw the following error:

Unable to import module 'http_api.sign_up.app': libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory
Traceback (most recent call last):

If I deploy from my computer, the function works fine.

Does anyone have any idea what the heck happened?

NPM@master not found

Current runner version: '2.161.0'
Prepare workflow directory
Prepare all required actions
Download action repository 'actions/checkout@v1'
Download action repository 'jakejarvis/[email protected]'
Download action repository 'actions/npm@master'
##[warning]Failed to download action 'https://api.github.com/repos/actions/npm/tarball/master'. Error Response status code does not indicate success: 404 (Not Found).
##[warning]Back off 18.464 seconds before retry.
##[warning]Failed to download action 'https://api.github.com/repos/actions/npm/tarball/master'. Error Response status code does not indicate success: 404 (Not Found).
##[warning]Back off 17.413 seconds before retry.
##[error]Response status code does not indicate success: 404 (Not Found).

Is this repo being maintained?

Hello Serverless,

It seems like this repo is abandoned. If so, would you recommend another package for the community to use and deprecate this one?

Deploy a serverless project that uses the serverless-python-requirements plugin

Hi,

as stated in the title I do not manage to build an action that allows the deployment of an Python based serverless project that uses the serverless-python-requirements plugin.

The steps are looking like this
`name: Deploy master branch
on:
pull_request:

jobs:
deploy:
name: deploy
runs-on: ubuntu-latest
steps:
- name: Clone repo
uses: actions/checkout@master
with:
fetch-depth: 1

- name: Install dependencies
  run: |
    npm install

- name: serverless serverless-python-requirements install
  uses: spring-media/serverless-github-actions-playground/.github/workflows@ci_cd
  with:
    args: plugin install -n serverless-python-requirements
    
- name: serverless deploy
  uses: spring-media/serverless-github-actions-playground/.github/workflows@ci_cd
  with:
    args: deploy
  env:
    # SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
    # or if using AWS creds directly
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

`

And the corresponding Dockerfile is:

`FROM nikolaik/python-nodejs:python3.7-nodejs10

LABEL version="1.0.0"
LABEL repository="https://github.com/serverless/github-action"
LABEL homepage="https://github.com/serverless/github-action"
LABEL maintainer="Serverless, Inc. [email protected] (https://serverless.com)"

LABEL "com.github.actions.name"="Serverless"
LABEL "com.github.actions.description"="Wraps the Serverless Frameork to enable common Serverless commands."
LABEL "com.github.actions.icon"="zap"
LABEL "com.github.actions.color"="red"

RUN npm i -g [email protected]
ENTRYPOINT ["serverless"] `

This ends up in an error in the plugin install step:

`serverless serverless-python-requirements install
Error --------------------------------------------------

Error: Cannot find module 'fs-extra'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/github/workspace/node_modules/serverless-python-requirements/index.js:5:13)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at plugins.forEach.plugin (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:108:18)
at Array.forEach ()
at PluginManager.loadPlugins (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:103:13)
at PluginManager.loadServicePlugins (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:148:10)
at PluginManager.loadAllPlugins (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:97:10)
at pluginManager.loadConfigFile.then.then (/usr/lib/node_modules/serverless/lib/Serverless.js:78:35)
at tryCatcher (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)`

I've tried already to move the installation to the Dockerfile but ended up in other errors as well. Did someone managed to solve this?

Thanks a lot!

How to install a private npm github package during sls deploy

hi,

My CI/CD serverless deploy is failing because its not able to install a private npm package.

Error --------------------------------------------------

npm install failed with code 1
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno ENOENT
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t ssh://[email protected]/private-org/private-repo.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR! /github/home/.npm/_logs/2020-05-28T13_30_18_595Z-debug.log

  at ChildProcess.child.on.exitCode (/github/workspace/node_modules/serverless-webpack/lib/utils.js:91:16)
  at ChildProcess.emit (events.js:198:13)
  at ChildProcess.EventEmitter.emit (domain.js:448:20)
  at maybeClose (internal/child_process.js:982:16)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

From previous event:
at PluginManager.invoke (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:505:22)
at PluginManager.spawn (/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:525:17)
at ServerlessWebpack.BbPromise.bind.then.then.then (/github/workspace/node_modules/serverless-webpack/index.js:91:53)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
at process.topLevelDomainCallback (domain.js:126:23)

Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: linux
Node Version: 10.20.1
Framework Version: 1.54.0
Plugin Version: 3.6.12
SDK Version: 2.3.1
Components Core Version: 1.1.2
Components CLI Version: 1.4.0

  deploy:
    name: deploy
    needs: test
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - uses: actions/setup-node@v1
      with:
        node-version: '12.x'
    - uses: webfactory/[email protected]
      with:
        ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} 
    - name: npm install
      run: npm install 
    - name: serverless deploy
      uses: serverless/github-action@master
      with:
        args: deploy
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        SLS_DEBUG: true

Usually i solve this using a webfactory/[email protected] so the first npm install works fine here and it manages to install the private package using the SSH key provided.

However during serverless deploy i get the above error and it cannot install the private npm package. Is there a way i can specify an SSH key for serverless action to use?

My NPM config env variables are ignored

I need to use the following environment variables in order for npm to install the correct stuff:

  • npm_config_arch: x64
  • npm_config_platform: linux

At the moment, linuxmusl is used instead of linux. Why is that? How to fix it?

Add example for YAML Syntax

Since Github Actions will be migrating from HCL to YAML. We need to update the README usage.

I would like to add to the README an example of usage using YAML.

No support for lambda with docker images

Deploying lambdas using docker images instead of layers is possible with serverless as explained here. An example:

provider:
  name: aws
  runtime: python3.8
  stage: dev
  region: us-west-1
  ecr:
    images:
        python_lambda:
        path: ./
...

however, this requires docker command to be available in docker image specified in the Dockerfile, which is not installed.

Could it be added, please? :-)

WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.

✔ Plugin "serverless-bundle" installed (105s)
Running "serverless" from node_modules
Deploying auction-service to stage dev (eu-west-1)
Using configuration:
{
"packager": "npm",
"concurrency": 2,
"packagerOptions": {},
"webpackConfig": "node_modules/serverless-bundle/src/webpack.config.js",
"includeModules": {
"forceExclude": [
"aws-sdk"
],
"forceInclude": null,
"packagePath": "package.json"
},
"excludeRegex": {},
"keepOutputDirectory": false
}
Removing /github/workspace/auction-service/.webpack
Bundling with Webpack...
× Stack auction-service-dev failed to deploy (0s)
Environment: linux, node 16.15.1, framework 3.19.0 (local) 3.19.0v (global), plugin 6.2.2, SDK 4.3.2
Credentials: Local, environment variables
Docs: docs.serverless.com
Support: forum.serverless.com
Bugs: github.com/serverless/serverless/issues
Error:
WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.

  • configuration.module.rules[1].resolve has an unknown property 'fullySpecified'. These properties are valid:
    object { alias?, aliasFields?, cachePredicate?, cacheWithContext?, concord?, descriptionFiles?, enforceExtension?, enforceModuleExtension?, extensions?, fileSystem?, mainFields?, mainFiles?, moduleExtensions?, modules?, plugins?, resolver?, symlinks?, unsafeCache?, useSyncFileSystemCalls? }
    -> Options for the resolver
    at webpack (/github/workspace/auction-service/node_modules/webpack/lib/webpack.js:31:9)
    at /github/workspace/auction-service/node_modules/serverless-webpack/lib/compile.js:110:39
    at tryCatcher (/github/workspace/auction-service/node_modules/bluebird/js/release/util.js:16:23)
    at Function.Promise.fromNode.Promise.fromCallback (/github/workspace/auction-service/node_modules/bluebird/js/release/promise.js:209:30)
    at webpackCompile (/github/workspace/auction-service/node_modules/serverless-webpack/lib/compile.js:110:20)
    at BbPromise.map.concurrency.concurrency (/github/workspace/auction-service/node_modules/serverless-webpack/lib/compile.js:137:14)
    at tryCatcher (/github/workspace/auction-service/node_modules/bluebird/js/release/util.js:16:23)
    at MappingPromiseArray._promiseFulfilled (/github/workspace/auction-service/node_modules/bluebird/js/release/map.js:68:38)
    at MappingPromiseArray.PromiseArray._iterate (/github/workspace/auction-service/node_modules/bluebird/js/release/promise_array.js:115:31)
    at MappingPromiseArray.init (/github/workspace/auction-service/node_modules/bluebird/js/release/promise_array.js:79:10)
    at MappingPromiseArray._asyncInit (/github/workspace/auction-service/node_modules/bluebird/js/release/map.js:37:10)
    at _drainQueueStep (/github/workspace/auction-service/node_modules/bluebird/js/release/async.js:97:12)
    at _drainQueue (/github/workspace/auction-service/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/github/workspace/auction-service/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/github/workspace/auction-service/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (node:internal/timers:466:21)
    1 deprecation found: run 'serverless doctor' for more details

Error: Cannot find module 'serverless'

Hey all.

Whenever I manually deploy by calling for example:
serverless deploy --stage prod
deploy passes and I can then call deployed API endpoints.

If I use the script the deploy also passes but when I try to query my newly aws-deployed API I receive Internal Server Error and this is seen in the logs:
image

Question: should serverless be at all required at runtime? My understanding is that it's only used for deploy. What's the error about then?

This is my serverless.yaml:

service: graderef-backend

useDotenv: true

plugins:
  - serverless-offline

provider:
  name: aws
  runtime: nodejs16.x
  region: eu-west-1
  deploymentMethod: direct
  environment:
    SECRET1: ${SECRET1}
    SECRET2: ${SECRET2}
    ...
functions:
  main:
    handler: dist/src/serverless.handler
    events:
      - http:
          method: ANY
          path: /
      - http:
          method: ANY
          path: '{proxy+}'

And this is my gh action script:

name: Deploy-serverless

on:
  push:
    branches: ['feature-serverless']

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install modules
        run: npm install
      - name: Run tests
        run: SECRET1=${{secrets.SECRET1}} SECRET2=${{secrets.SECRET2}} npm run test:e2e
  deploy:
    needs: test
    name: deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ 16.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:
         AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
         AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
         SECRET1: ${{ secrets.SECRET1}}
         SECRET2: ${{ secrets.SECRET2}}
         ...

Support role assumption from long term creds

Instead of encouraging privileged long term creds, we should encourage long term creds with permissions only to assume an IAM role. Even better if we can restrict them to only GitHub action runner IP ranges.

alpine based image has caused CI built wrong binaries for AWS Lambda, do you still maintain another debian slim based image?

the #51 alpine based image has caused CI built wrong binaries for AWS Lambda, See thematters/serverless-file-post-processing#441 (comment) because it has arch dependent npm packages (like sharp); this alpine based image has caused Lambda failure

2021-10-07T06:20:19.798Z	undefined	ERROR	Uncaught Exception 	
{
    "errorType": "Error",
    "errorMessage": "'linuxmusl-x64' binaries cannot be used on the 'linux-x64' platform. Please remove the 'node_modules/sharp' directory and run 'npm install' on the 'linux-x64' platform.",
    "stack": [
        "Error: 'linuxmusl-x64' binaries cannot be used on the 'linux-x64' platform. Please remove the 'node_modules/sharp' directory and run 'npm install' on the 'linux-x64' platform.",
        "    at Object.hasVendoredLibvips (/var/task/node_modules/sharp/lib/libvips.js:68:13)",

after this I have manually built Lambda with sls package, got the zip file, manually upload to AWS, all worked well

/cc @anandg112 @DavideViolante after #51 merged, do you still maintain another debian slim based image? I am still researching a way to npm install different arch binary code, but the easiest way is to, maybe avoid use of serverless/github-action

Error: Failed to download action 'https://api.github.com/repos/workflows/checkout/tarball/master'

Here is my workflow file

on:
  push:
    branches:
      - master
name: Serverless deploy master branch
jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    steps:
    - uses: workflows/checkout@master
    - name: before install
      run: echo before install
    - name: npm install
      uses: actions/npm@master
      with:
        args: install
    - name: before install
      run: echo finished install
    - name: serverless deploy
      uses: serverless/github-action@master
      with:
        args: deploy
      env:
        SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}

I have also tried - uses: actions/checkout@master as the first step.

When I run it, I get this error:

2020-01-22T21:31:04.9818185Z ##[section]Starting: Request a runner to run this job
2020-01-22T21:31:05.2418214Z Requesting a hosted runner in current repository's account/organization with labels: 'ubuntu-latest', require runner match: True
2020-01-22T21:31:05.8018658Z Labels matched hosted runners has been found, waiting for one of them get assigned for this job.
2020-01-22T21:31:05.8139594Z ##[section]Finishing: Request a runner to run this job
2020-01-22T21:31:15.2526699Z Current runner version: '2.164.0'
2020-01-22T21:31:15.2527949Z Prepare workflow directory
2020-01-22T21:31:15.2735166Z Prepare all required actions
2020-01-22T21:31:15.2747430Z Download action repository 'workflows/checkout@master'
2020-01-22T21:31:15.4039177Z ##[warning]Failed to download action 'https://api.github.com/repos/workflows/checkout/tarball/master'. Error Response status code does not indicate success: 404 (Not Found).
2020-01-22T21:31:15.4044574Z ##[warning]Back off 17.036 seconds before retry.
2020-01-22T21:31:32.5099955Z ##[warning]Failed to download action 'https://api.github.com/repos/workflows/checkout/tarball/master'. Error Response status code does not indicate success: 404 (Not Found).
2020-01-22T21:31:32.5102934Z ##[warning]Back off 14.714 seconds before retry.
2020-01-22T21:31:47.3207311Z ##[error]Response status code does not indicate success: 404 (Not Found).

Any ideas why it has an error?
Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.