首页 > 解决方案 > Pulumi GitHub Action pulumi/actions@v2: error: 好像没有安装Pulumi SDK。你有运行 npm install 或 yarn install 吗?

问题描述

我正在开发一个项目,该项目使用 Pulumi 在 Azure 上配置一些基础设施部分。我切换到最近发布的新pulumi/actions@v2 Action 。

我的 GitHub Actions 工作流程如下所示:

name: pulumi-preview-up

on: [push]

env:
  ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
  ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
  ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
  ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
  PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}

jobs:
  preview-up-destroy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Install Pulumi CLI
        uses: pulumi/action-install-pulumi-cli@v1.0.1

      - uses: pulumi/actions@v2
        with:
          command: preview
          stack-name: dev

现在我遇到了以下错误(在此处查看完整的 GHA 日志):

  Error: code: 255
   stdout: Previewing update (github-638882160)
  
  View Live: https://app.pulumi.com/jonashackt/scmbreakoutpulumi/github-638882160/previews/450a1f61-549d-4669-a7de-d8da8fc622f7
  
      pulumi:pulumi:Stack scmbreakoutpulumi-github-638882160  error: It looks like the Pulumi SDK has not been installed. Have you run npm install or yarn install?
      pulumi:pulumi:Stack scmbreakoutpulumi-github-638882160  1 message
   
  Diagnostics:
    pulumi:pulumi:Stack (scmbreakoutpulumi-github-638882160):
      error: It looks like the Pulumi SDK has not been installed. Have you run npm install or yarn install?
   
  
   stderr: error: failed to load language plugin nodejs: could not read plugin [/home/runner/.pulumi/bin/pulumi-language-nodejs] stdout: EOF
  
   err?: 

标签: azurenpmgithub-actionspulumiinfrastructure-as-code

解决方案


新的 Pulumi v2 GitHub Action 使用新的 Pulumi 自动化 API。正如文档所述

这意味着没有支持 npm 或 pip 安装的功能。此功能应推迟到支持它的正确 GitHub Marketplace 操作。

pulumi/actions这意味着配置和操作已经不够了(就像我们习惯使用 Pulumi v1 Action 一样)pulumi/action-install-pulumi-cli。我们还需要自己设置语言特定的 GitHub Action 环境——并且还需要自己安装相应的依赖项——在使用之前pulumi/actions

假设使用带有 JavaScript/Typscript 样式的 Pulumi,我们需要添加actions/setup-node Action 并在npm install之后运行。在我们的workflow.yml它看起来像这样:

name: pulumi-preview-up

on: [push]

env:
  ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
  ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
  ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
  ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
  PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}

jobs:
  preview-up-destroy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: In order to use the Pulumi v2 action, we need to setup the Pulumi project specific language environment
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: After setting up the Pulumi project specific language environment, we need to install the dependencies also
        run: npm install

      - name: Install Pulumi CLI
        uses: pulumi/action-install-pulumi-cli@v1.0.1

      - uses: pulumi/actions@v2
        with:
          command: preview
          stack-name: dev

如果您选择其他语言而不是 JavaScript/TypeScript,您还需要设置匹配环境。文档还显示了 Python、Go 和 .Net 的示例


推荐阅读