【问题标题】:Adding a binary to the PATH from a Docker GitHub Action for use by later workflow steps从 Docker GitHub Action 将二进制文件添加到 PATH 以供后续工作流程步骤使用
【发布时间】:2020-03-12 01:01:29
【问题描述】:

我正在尝试创建一个基于 Dockerfile 的操作,将程序添加到 $PATH,以便以后的操作可以使用它。我的操作运行如下代码:

mkdir -p $GITHUB_WORKSPACE/bin
echo "echo Hello, world!" > $GITHUB_WORKSPACE/bin/hello-world
echo "::add-path::$GITHUB_WORKSPACE/bin"

我的测试工作流程是这样使用的:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1.0.0
      - name: Add program to path
        uses: ./
      - name: Use program
        run: hello-world

这会失败,因为当程序已添加到 $GITHUB_WORKSPACE/bin/hello-world 时,$GITHUB_WORKSPACE 的值在操作和工作区步骤中是不同的。

在动作中是/github/workspace/,而在工作流中是/home/runner/work/setup-gleam/setup-gleam/,所以动作设置的$PATH加法不正确。

如何将文件从基于 dockerfile 的 GitHub 操作添加到目录,以便它位于工作流其余部分的路径上? dockerfile动作和非dockerfile动作之间似乎没有可写的$PATH目录共享。

【问题讨论】:

    标签: docker github-actions


    【解决方案1】:

    Runner路径存储在$RUNNER_WORKSPACE环境变量中,可以用来获取正确的路径。

    echo "::add-path::$GITHUB_WORKSPACE/bin" # Make it accessible from docker containers
    echo "::add-path::$RUNNER_WORKSPACE/$(basename $GITHUB_REPOSITORY)/bin" # Make it accessible from runner
    

    但它看起来更像是一种解决方法而不是解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 2017-06-12
      • 2015-05-21
      • 2021-04-24
      • 2017-10-18
      • 1970-01-01
      • 2020-09-11
      • 2020-03-29
      相关资源
      最近更新 更多