GitHub 在子目录中时不创建文件的操作
GitHub Actions not creating files when it's in a subdirectory
我正在尝试学习如何使用 GitHub 操作,但我 运行 遇到了一个小问题。当我在本地 运行 代码时,在 python training/train.py
为 运行ning 时创建的文件会创建在正确的文件夹中。但是,当我尝试用 GitHub 操作做同样的事情时,只有当我选择在根目录而不是 /training/outputs/
中创建文件时,才会创建这些文件。有办法解决这个问题吗?
这是我的 GitHub 存储库:https://github.com/JayThibs/github-actions-ml-template
我已经想出了解决这个问题的方法,所以我想我应该在这里分享。
因为我使用的是 CML(连续机器学习),所以我可以简单地在我的 GitHub 操作 cml.yaml 文件中包含以下行:
cml-pr training/outputs/*
这是因为 cml 不会自动将输出推送到我的代码。
除了使用cml-pr
,您还可以使用以下github手动推送:
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add training/outputs/*
git commit --message "Commit training outputs"
git push
请记住,如果多个同时运行之间存在竞争条件,后一种解决方案将无法妥善处理合并冲突。
由于该操作会将文件推送到您的存储库,因此如果您的操作在推送时触发,它将触发另一个 GitHub 操作。要解决此问题,只需在提交消息中添加类似 [skip ci] 的内容,GitHub 将阻止触发操作。您可以在这里了解更多信息:https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/
0x2b3bfa0 在 GitHub 上帮助我解决了这个问题,你可以在这里找到我们的对话:https://github.com/iterative/cml/issues/658
我正在尝试学习如何使用 GitHub 操作,但我 运行 遇到了一个小问题。当我在本地 运行 代码时,在 python training/train.py
为 运行ning 时创建的文件会创建在正确的文件夹中。但是,当我尝试用 GitHub 操作做同样的事情时,只有当我选择在根目录而不是 /training/outputs/
中创建文件时,才会创建这些文件。有办法解决这个问题吗?
这是我的 GitHub 存储库:https://github.com/JayThibs/github-actions-ml-template
我已经想出了解决这个问题的方法,所以我想我应该在这里分享。
因为我使用的是 CML(连续机器学习),所以我可以简单地在我的 GitHub 操作 cml.yaml 文件中包含以下行:
cml-pr training/outputs/*
这是因为 cml 不会自动将输出推送到我的代码。
除了使用cml-pr
,您还可以使用以下github手动推送:
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add training/outputs/*
git commit --message "Commit training outputs"
git push
请记住,如果多个同时运行之间存在竞争条件,后一种解决方案将无法妥善处理合并冲突。
由于该操作会将文件推送到您的存储库,因此如果您的操作在推送时触发,它将触发另一个 GitHub 操作。要解决此问题,只需在提交消息中添加类似 [skip ci] 的内容,GitHub 将阻止触发操作。您可以在这里了解更多信息:https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/
0x2b3bfa0 在 GitHub 上帮助我解决了这个问题,你可以在这里找到我们的对话:https://github.com/iterative/cml/issues/658