【问题标题】:How to use github action to deploy a serverless mono repo with multiple packages.json?如何使用 github 操作部署具有多个 packages.json 的无服务器单声道存储库?
【发布时间】:2020-09-22 13:46:22
【问题描述】:

我正在尝试部署作为 mono repo 一部分的微服务,为此我正在使用 github 操作,但我遇到了与 package.json 文件中的插件相关的问题。这是我项目的结构:

--repo
---package.json
---resources
----package.json
---services
----Service A
-----package.json
----Service B
-----package.json

首先,我尝试部署基本上创建 S3 存储桶、cognito 用户池等的资源文件夹......并且我添加了名为“serverless-cognito-add-custom-attributes”的插件作为该项目的一部分, 这个插件只存在于 "resources" 文件夹内的 package.json 中。

我在尝试从 github 操作部署时遇到此错误:

未找到无服务器插件“serverless-cognito-add-custom-attributes”。确保它已安装并列在无服务器配置文件的“插件”部分。

这是我在 github 操作中使用的 .yml 文件:

name: Deploy Resources to Dev

on:
  push:
    branches:
      - dev
    tags:
      - RC-*
    paths: 
      - './resources'

jobs:
  InstallActions:
    name: deploy
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Download Node
      uses: actions/setup-node@v1
      with:
        node-version: "12.x"
    - name: Install NPM Global Packages
      run: |
        npm install --global
        npm install "./resources" --global
    - name: Serverless Deploy       
      uses: serverless/github-action@master
      with:
        args: deploy --stage dev --config "./resources/serverless.yml"
      env:
        AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_DEV}}
        AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY_DEV}}

当上面的 .yml 文件运行时,我可以在控制台上看到:

+ ----@1.0.0
added 1 package in 2.935s
+ resources@1.0.0
added 3 packages from 3 contributors in 0.654s

【问题讨论】:

    标签: amazon-web-services github package.json serverless-framework github-actions


    【解决方案1】:

    由于某种原因,似乎

    uses: serverless/github-action@master
    

    从子文件夹安装时无法找到软件包,但手动执行所有操作似乎都可以正常工作:

    name: Deploy Resources to Dev
    
    on:
      push:
        branches:
          - dev
        tags:
          - RC-*
        paths: 
          - './resources'
    
    jobs:
      Deploy:
        name: deploy
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
        - name: Download Node
          uses: actions/setup-node@v1
          with:
            node-version: "12.x"
        - name: Install Serverless Framework
          run: npm install -g serverless
        - name: Serverless Authentication
          run: sls config credentials --provider aws --key ${{secrets.AWS_ACCESS_KEY_DEV}} --secret ${{secrets.AWS_SECRET_ACCESS_KEY_DEV}}
        - name: Install NPM dependencies
          run: |
            npm install
            npm install "./resources"
        - name: Deploy to AWS
          run: serverless deploy -v -s dev
          working-directory: "./resources"
    

    我遇到这个问题大约 17 个小时,然后决定全部手动而不是使用包 serverless/github-action@master

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2020-11-29
      • 2018-08-19
      相关资源
      最近更新 更多