Pulumi GitHub Action pulumi / actions @ v2: ошибка: похоже, что 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/[email protected]

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

Теперь я столкнулся со следующей ошибкой (см. полные журналы ГСГ здесь):

  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?: 

person jonashackt    schedule 10.03.2021    source источник


Ответы (1)


Новое действие Pulumi v2 на GitHub использует новый API автоматизации Pulumi. Как указано в документах:

Это означает, что для установки npm или pip нет поддерживающих функций. Эту функциональность следует отложить до правильных действий GitHub Marketplace, которые ее поддерживают.

Это означает, что для настройки действий pulumi/actions и pulumi/action-install-pulumi-cli уже недостаточно (как мы привыкли с действием Pulumi v1). Нам дополнительно необходимо самостоятельно настроить среду действий GitHub для конкретного языка - И также необходимо установить соответствующие зависимости сами - ПЕРЕД с помощью pulumi/actions!

Предполагая, что вы используете Pulumi со стилем JavaScript / Typscript, нам нужно добавить 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/[email protected]

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

Если вы выбираете другой язык, а не JavaScript / TypeScript, вам также необходимо настроить соответствующую среду. В документации показаны примеры для Python, Go и .Net также.

person jonashackt    schedule 10.03.2021