无服务器 GitHub 操作:未找到无服务器

问题描述 投票:0回答:2

刚刚开始尝试无服务器 GitHub Action (https://github.com/serverless/github-action)。我的配置文件中有一些插件,因此需要遵循 README 中提供的指导。但是,我收到了

serverless not found
错误。我已经打开了一个问题,但尚未回复,所以我认为这将是我要询问的下一个社区。

配置文件:

name: Deploy main branch

on:
  push:
    branches:
      - main

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: -c "cd backend/endpoints && \
                  serverless plugin install -n serverless-deployment-bucket && \
                  serverless plugin install -n serverless-python-requirements && \
                  serverless plugin install -n serverless-iam-roles-per-function && \
                  serverless plugin install -n serverless-offline && \
                  serverless deploy"
        entrypoint: /bin/sh
      env:
        SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}

但是出现以下错误:

/bin/sh: 1:  serverless: not found

不确定

package.json
文件中到底需要包含什么内容?我添加了
serverless
作为部门,但仍然是同样的错误。

node.js github-actions serverless
2个回答
0
投票

Tl;博士

在无服务器命令前加上 npm 执行命令作为前缀(参考:npx

npx serverless plugin install [...]

解释

在您将其安装为依赖项后,shell 似乎无法找到该命令。

这是因为本地安装的依赖项不提供其安装上下文之外的 cli 命令。这也是为什么您会发现命令行工具在其安装说明中始终设置“-g”标志。

要使用本地安装的任意命令,您必须使用包管理器附带的执行库(npx)。


0
投票

我遇到了类似的问题,只需在部署命令之前全局安装无服务器即可解决。

工作流程文件:

name: CI (Push)

on:
  push:
    branches: [main, cs_cancellation]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      # Setup the node js environment on runner instance
      - name: Set up Node.js environment
        uses: actions/setup-node@v3
        with:
          node-version: "18.x"

      # Install required project dependencies on runner for smooth deployment
      - name: Install dependencies
        id: install-dependencies
        uses: ./.github/install-dependencies

      # Configure the aws-cli on runner instance
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1

      # Build and deploy the lambda functions packages
      - name: Build and deploy lambda
        id: build-and-deploy-lambda
        uses: ./.github/deploy-packages
        with:
          lambda-function: ${{ matrix.lambda-function }}
          environment-name: stage

依赖文件:

name: Install Dependencies
description: Install required project dependencies
runs:
  using: 'composite'
  steps:
    - uses: pnpm/action-setup@v2
      with:
        version: 8

    - uses: actions/setup-node@v3
      with:
        node-version: 18.x

    - name: Install serverless
      run: pnpm install -g serverless
      shell: bash

    - name: Install dependencies
      run: pnpm install
      shell: bash
© www.soinside.com 2019 - 2024. All rights reserved.