如何从 GitHub Actions 中的重定向输出中删除所有无关输出?

2024-03-30

我有一个使用 Terraform 进行部署的 GitHub Actions 工作流程。

当 Terraform 完成后,我想获取 Terraform 输出并将其发送到工作流程中的下一个作业,以便可以提取和使用各个部分。具体来说,我的 Terraform 部署一个 Azure Function,然后输出函数应用名称。然后,它被用来告诉下一个作业在哪里部署函数代码。

但是,当我重定向输出时terraform output像这样:

      - name: save tf output
        run: terraform output -json > tfoutput.json
        shell: bash
        working-directory: terraform

然后将其放入工作工件中

      - name: Upload output file
        uses: actions/upload-artifact@v2
        with:
          name: terraform-output
          path: terraform/tfoutput.json

内容结果文件如下所示:

[command]/home/runner/work/_temp/fb419afc-033e-4058-b5f3-c44b90cb0bd0/terraform-bin output -json
{
  "functionappname": {
    "sensitive": false,
    "type": "string",
    "value": "telemetry-function"
  }
}
::debug::Terraform exited with code 0.
::debug::stdout: {%0A  "functionappname": {%0A    "sensitive": false,%0A    "type": "string",%0A    "value": "telemetry-function"%0A  }%0A}%0A
::debug::stderr: 
::debug::exitcode: 0
::set-output name=stdout::{%0A  "functionappname": {%0A    "sensitive": false,%0A    "type": "string",%0A    "value": "telemetry-function"%0A  }%0A}%0A
::set-output name=stderr::
::set-output name=exitcode::0

这当然意味着,这绝对是notTerraform 的 JSON 输出应该是机器可读的。

我还没有找到任何方法来删除所有无关的垃圾。值得注意的是,在 Azure DevOps 中,这一工作流程的执行完全符合人们的预期。

我采取的方法是将所有内容放入一项作业中(以避免重定向输出和传递工件),然后使用terraform output | jq -r ...将 terraform 的输出获取到我的 jq 语句中以提取值及其still不起作用。由于某种原因,该命令的输出似乎确实是垃圾。

不确定这是否is我可以解决的问题,terraform 操作中的错误,或者一般 GH 操作中的错误。

另外,我应该在哪里提交 GH Actions 的错误???


解决方案是添加terraform_wrapper: false到您的设置 Terraform 步骤:

      - name: Setup terraform
        uses: hashicorp/setup-terraform@v1
        with:
          terraform_version: ${{ env.TERRAFORM_VERSION }}
          terraform_wrapper: false

因为默认情况下,Terraform Action 会将其所有输出包装在这个垃圾中。 ????????‍♂️

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 GitHub Actions 中的重定向输出中删除所有无关输出? 的相关文章

随机推荐

  • 如何从 UI 测试访问我的 swift 类?

    我有一个像这样的 UI 测试 func testHome if isRedOrange clear code 如何从 UI 测试中的 isRedOrange swift 文件访问 isRedOrange clear 函数 UI 测试是黑盒的
  • 隐藏预期输出

    这是期望脚本的一部分 usr bin expect spawn noecho kwalletcli f Passwords e keyofmypassword expect set passwd expect out buffer do s
  • 当我使用 discord.py 使用 ast.literal_eval 时,第 1 行出现格式错误的节点或字符串

    我尝试执行 import ast ast literal eval 5 5 然后我得到了ValueError malformed node or string on line 1
  • 异步并发地播放不同音高的声音

    我的目标是使用 Python 在计算机游戏环境中播放满足以下要求的声音 获取一些输入 WAV 文件并随机将音高改变为原始值的 50 使用 PyDub 更改采样率似乎是一种简单的方法 播放声音 能够快速调用该函数 使实际播放时长短声音重叠 我
  • LR(0)、LL(0)、LALR(1) 等之间的关系?

    我真的很难理解以下之间的关系 LR 0 LL 0 LALR 1 SLR 1 LR 1 LL 1 我很确定 LALR 1 和 SLR 1 是 LR 1 的子集 但我不知道其他的 它们都是独家的吗 LL 0 是 LL 1 的子集吗 Thanks
  • 阻止应用程序通过 Cocoa API (LittleSnitch API) 访问网络?

    我正在使用 OS X 10 5 我正在寻找一种方法来检测应用程序是否尝试访问互联网 此时 如果应用程序与我将定义的一组规则匹配 我想阻止该应用程序 有的是ipfw我意识到可以使用 Unix 命令来阻止对某些端口的访问 但这会影响所有应用程序
  • Ansible add_host 不起作用,它正在跳过主机

    我正在使用 Ansible 创建一个新的 EC2 实例并尝试在其上安装一些软件包 问题是我正在向主机组添加新主机 但我在另一个游戏中看不到该主机组 当到达 配置 EC2 实例 时 它会显示 PLAY 配置EC2实例 跳过 没有匹配的主机 这
  • Python 中的多行日志记录

    我正在使用 Python 3 3 5 和日志记录模块将信息记录到本地文件 来自不同的线程 在某些情况下 我想输出一些附加信息 但不知道这些信息到底是什么 例如 它可能是一行文本或一个字典 我想做的是在写入日志记录后将此附加信息添加到我的日志
  • 远程 Pushurl 不起作用

    我在我的项目中使用 GIT 现在我想将它与github集成 所以我创建了一个远程 git remote add github https email protected cdn cgi l email protection WouterJ
  • HTML5 Canvas:更改图像颜色

    我有一个图像 灰度形式 我想更改其颜色 特定于用户 由于更改灰度图像的颜色非常困难 因此我提出了一种方法 图像分为两部分 一种是白色图像 其次 具有灰度的半透明图像 现在 我将两个图像放在彼此的顶部 白色图像在下面 灰度图像在上面 这样当我
  • 创建自定义复合按钮栏

    我必须在 Android 中创建一个自定义复合按钮栏控件 如下所示here http www coated com wp content uploads 2009 11 slacker radio android application j
  • Mockito - 没有为其中一个测试用例注入模拟

    我有一个 jsf spring 应用程序并使用mockito对于我的单元测试 我不断得到NullPointerException当我运行我的junit测试在iEmployeeService嘲笑 没有Exception for iSecuri
  • python:numpy 列表到数组和 vstack

    from scipy io wavfile import read filepath glob glob wav rates datas for fp in filepath rate data read fp rates append r
  • Nodejs CSV 数据导出系统供用户使用

    我需要允许用户以 csv 格式导出数据 我用nodejs写了应用程序 用户的导出数据可能非常庞大 所以我想知道如何在nodejs中处理这种情况 我应该使用nodejs的process nexttick还是子进程api 还有什么好的模块可用于
  • 当在静态上下文中使用实例方法时,为什么 javac 会发出“错误:类中的方法无法应用于给定类型”?

    考虑以下 无效 Java 程序 public class Test public static void main String args int ints 1 2 3 4 5 print ints public void print in
  • 更新 iOS 分发证书的正确方法

    我的分发证书以及我的所有配置文件将于 6 月 7 日到期 如何正确续订 我现在应该撤销它并申请新的吗 如果我这样做 我所有的实时应用程序都会被删除吗 您的实时应用程序不会被删除 应用商店中的任何内容都不会发生任何变化 一旦它们正式过期 唯一
  • 如何使用递归对数组的偶数和奇数求和

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要帮助创建一个递归函数 该函数接受数字列表 数组并返回元组或类似格式 a b where a是偶数之和并且b是奇数之和 例如 inpu
  • Java Swing:使用相应的键盘按钮时显示按下的按钮

    我正在使用 Swing 用 Ja va 编写一个程序 并使用包含箭头键的 GUI 方向键与键盘上的方向键相对应 当我按下键盘上的向上箭头键时 我希望 GUI 上的向上箭头键显示为被按下 在我释放箭头键之前 它应该显示它仍在被按下 并且当释放
  • 多条路线使用同一个控制器?

    有没有办法编写以下路由 这样您就不必每次都指定相同的控制器 get jobs gt pages jobs get contact gt pages contact get terms gt pages terms get privacy g
  • 如何从 GitHub Actions 中的重定向输出中删除所有无关输出?

    我有一个使用 Terraform 进行部署的 GitHub Actions 工作流程 当 Terraform 完成后 我想获取 Terraform 输出并将其发送到工作流程中的下一个作业 以便可以提取和使用各个部分 具体来说 我的 Terr