从Docker GitHub Action向PATH添加二进制文件以供后续工作流步骤使用

我正在尝试创建一个基于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目录。

imauzhw 回答:从Docker GitHub Action向PATH添加二进制文件以供后续工作流步骤使用

流道路径存储在$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

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

本文链接:https://www.f2er.com/3092681.html

大家都在问