在 Github Actions 中使用 Powershell 的输出
Posted
技术标签:
【中文标题】在 Github Actions 中使用 Powershell 的输出【英文标题】:Using outputs of Powershell in Github Actions 【发布时间】:2021-11-05 01:04:51 【问题描述】:我正在尝试使用 Powershell 获取连接字符串并将此参数传递给操作中的另一个步骤,但我收到此错误:
Input required and not supplied: connection-string
但是我正在遵循我之前使用的类似行为,但我不确定它为什么不起作用,这是我的脚本的一部分:
- name: Secrets to Key Vault
uses: azure/powershell@v1
env:
POWERSHELL_TELEMETRY_OPTOUT: 1
with:
inlineScript: |
$sqlConnectionString = (az keyvault secret show --vault-name <keyVaultName> --name <secret-name> --query [value] --output tsv)
echo ::set-output name=sqlConnectionString::$( $sqlConnectionString)
azPSVersion : '3.1.0'
- name: Deploy Core Module
uses: azure/sql-action@v1
id: sqlConnection
with:
server-name: <sqlServerName>
connection-string: $ steps.sqlConnection.outputs.sqlConnectionString
dacpac-package: './Database.dacpac'
我认为问题与变量的输出有关,但我之前使用类似的语法只是在一个简单的运行中并且它有效。会不会和Powershell的行为有关?
【问题讨论】:
【参考方案1】:请在您的第一个操作中添加 id:
- name: Secrets to Key Vault
uses: azure/powershell@v1
id: setSqlConnection
env:
POWERSHELL_TELEMETRY_OPTOUT: 1
with:
inlineScript: |
$sqlConnectionString = (az keyvault secret show --vault-name <keyVaultName> --name <secret-name> --query [value] --output tsv)
echo ::set-output name=sqlConnectionString::$( $sqlConnectionString)
azPSVersion : '3.1.0'
- name: Deploy Core Module
uses: azure/sql-action@v1
id: sqlConnection
with:
server-name: <sqlServerName>
connection-string: $ steps.setSqlConnection.outputs.sqlConnectionString
dacpac-package: './Database.dacpac'
然后使用 ti 访问输出$ steps.setSqlConnection.outputs.sqlConnectionString
【讨论】:
哦,我明白了。我弄乱了变量的 id 部分。以上是关于在 Github Actions 中使用 Powershell 的输出的主要内容,如果未能解决你的问题,请参考以下文章
如何在 GitHub Actions 中构建的 Dockerfile 中使用 github 令牌并尝试克隆私有存储库?
在 Windows 上的 GitHub Actions 中缓存依赖项
如何在 GitHub Actions 中使用 env 文件?
在 GitHub Actions 中使用 docker 文件