我正在尝试创建一个基于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目录。
发布于 2019-12-28 00:42:09
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但它看起来更像是一种变通而不是解决方案。
https://stackoverflow.com/questions/58884408
复制相似问题