【问题标题】:how to use variables in "with" block in github actions如何在 github 操作中的“with”块中使用变量
【发布时间】:2020-06-25 15:33:01
【问题描述】:

我在 github 操作方面遇到了很多困难。这似乎有效:

      - name: Tag & Push docker image
        run: |
          docker push myrepo/myapp:${GITHUB_SHA::8}

但是,这不是:

      - name: create release
        uses: some-custom-action
        with:
          release_version: 1.0.0-${GITHUB_SHA::8}

也不是这个:

      - name: create release
        uses: some-custom-action
        with:
          release_version: "1.0.0-${{ env.GITHUB_SHA }}"

我对 github 操作完全陌生,对缺少文档等感到惊讶。

我只需要将变量传递给 github 操作的“with”参数。

如果有人能够帮助我找出我做错了什么,我将非常感激!

【问题讨论】:

  • 真的。它不会有所作为。不过谢谢,清理一下。

标签: github-actions


【解决方案1】:

当您使用run 上下文时,您正在调用一个shell。 (对于 macOS 和 Linux 主机,这是/bin/bash。)所以对于这一步:

- name: Tag & Push docker image
  run: |
    docker push myrepo/myapp:${GITHUB_SHA::8}

您正在使用一个 shell,${GITHUB_SHA::8} 将按字面意思传递给它。然后,shell 将对其进行解析并使用其正常解析规则对其进行插值。

但是,当您指定要运行的动作,而不是要执行的脚本时,您只是在调用不同的程序。没有外壳,所以没有任何东西可以解析${GITHUB_SHA::8}

您可以使用${{ ... }} 引用事物in the contexts that are available。例如,有一个 env 上下文可供您设置键/值对并重新使用它们。 (但env 上下文不是bash shell 的一部分,因此没有${{ env.PWD }}。)

不过,the github contextenvironment variables that are set when you do run a shell 之间有一个映射。 ${{ github.sha }} 上下文变量将在您的 shell 中设置为 $GITHUB_SHA 环境变量。

所以在你的例子中,这应该有效:

- name: create release
  uses: some-custom-action
  with:
    release_version: "1.0.0-${{ github.sha }}"

【讨论】:

  • 我构建的apk 输出有一个动态名称,它使用当前分支和我可以分别通过git branch --show-currentgit rev-parse --short HEAD 查询的提交哈希。如何将这些捕获为变量,以便actions/upload-artifact@v1 可以上传构建的apk
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 2021-01-07
  • 2021-03-10
  • 2022-11-10
  • 2022-12-16
  • 1970-01-01
  • 2023-02-14
相关资源
最近更新 更多