我正在尝试创建一个基于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
目录。
答案 0 :(得分:0)
流道路径存储在$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
但它看起来更像是一种解决方法,而不是解决方案。