azure - 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?:
解决方案
新的 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 的示例。
推荐阅读
- reporting-services - 如何计算 SSRS 报告中的小时和分钟平均值
- maven - 在运行时范围内包括 test-jar
- css - 如何定位 woocommerce 元素?
- linux - 如何使用 sed 删除空的重复行?
- amazon-web-services - AWS Lambda 函数无法从 EC2 实例访问 MySQL 数据库:SequelizeConnectionError connect ETIMEDOUT
- mysql - 使用 mysql 的保留关键字作为 django 的字段有什么缺点?
- .net-core - 如何在.net core 中获取当前进程监听端口?
- java - 在 Appium 中找不到带有 Xpath 的元素
- linq - AspNetBoilerplate 返回所有记录,除了 where 子句
- ios - SwiftUI 中的 dequeueReusableCell(withIdentifier: "") 等价物是什么?