在 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 文件

在 Github Actions 中使用 Powershell 的输出

Github Actions生成 secrets