首页 > 解决方案 > Github Actions 路径未更新

问题描述

现在,我正在尝试从源代码构建一个工具并使用它来构建一个 C++ 项目。我能够提取 tar 文件 (gcc-arm-none-eabi)。但是,当我尝试将它添加到路径(使用$GITHUB_PATH,而不是add-path)时,路径不适用于我的下一个操作,并且我无法构建文件。该错误表明它找不到 gcc-arm-none-eabi 工具集,这意味着它没有进入路径。

这是第一个函数的入口点的脚本(make 在下一个操作中运行以允许应用路径)

echo "Downloading ARM Toolchain"
# The one from apt isn't updated so I have to build from source
curl -L https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -o gcc-arm-none-eabi.tar.bz2
tar -xjf gcc-arm-none-eabi.tar.bz2

echo "/github/workspace/gcc-arm-none-eabi-10-2020-q4-major/bin" >> $GITHUB_PATH

我什至无法通过查看路径中的内容进行调试,因为运行echo $(PATH)只是说找不到 PATH。我应该怎么办?

标签: c++gccdockerfilegithub-actions

解决方案


我什至无法通过查看路径中的内容进行调试,因为运行echo $(PATH)只是说找不到 PATH。我应该怎么办?

首先,PATH它不是一个命令,所以如果你想打印它的值,它会类似于echo "${PATH}"echo "$PATH"

然后,如果您想向现有环境变量添加一个值,则类似于

export PATH="${PATH}:/github/workspace/gcc-arm-none-eabi-10-2020-q4-major/bin"

编辑:似乎不是使用 Github Actions 向路径添加内容的有效方法,同时在问题中似乎是正确的。要获取更多详细信息:https ://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path 。感谢 Benjamin W. 在评论中指出这一点。

最后,我认为如果您使用已经包含这种依赖关系的 docker 镜像会更合适(如果该镜像不存在,您可以轻松编写自己的 Dockerfile)。Github 操作旨在使用包含执行构建操作所需的依赖项的 docker(或 OCI 容器)映像。你应该看看这里:https ://docs.github.com/en/free-pro-team@latest/actions/creating-actions/dockerfile-support-for-github-actions


推荐阅读