Nodejs:act、本地执行和 GitHub actions 执行的结果不一样
一个小问题,我的一个获取 hltv 数据制作日历的项目,在本地执行和 act+docker 环境下执行输出顺序没有问题,但是在 GitHub actions 上执行就会偶尔出现结果顺序不一致的问题,是异步的原因吗?
项目地址如下: https://github.com/nxy1999/cs-calendar
本地执行结果:
获取比赛数据成功
正在提取旧日历文件标题…
正在创建新事件列表…
缺少必要的队伍名称信息 2370911
…
缺少必要的队伍名称信息 2370784
正在比较旧事件和新事件列表…
日历文件没有变化,跳过更新!
----------------------------------
GitHub actions 执行结果:
获取比赛数据成功
缺少必要的队伍名称信息 2370783
…
缺少必要的队伍名称信息 2370784
正在读取旧日历文件…
正在提取旧日历文件标题…
正在创建新事件列表…
正在比较旧事件和新事件列表…
日历文件没有变化,跳过更新!
本地和 act 执行的顺序没有错,但是 GitHub actions 执行的结果各不相同,实在是想不明白了,求教
Nodejs:act、本地执行和 GitHub actions 执行的结果不一样
给 console.log 套一层,输出时带上时间戳(精确点),感觉可能是 log 输出后的延迟之类的
我只能说 GitHub Actions 是真的难调,唉😮💨
玩 github action 有一种开彩票的美,每一次运行都在默默祈祷一定能跑通,很刺激🤣
好真实
老哥稳,就是这个原因
不依赖太多东西的话用 act 还能凑活用用,但依赖了其他东西(比如各种 key 甚至虚拟化的话)那就不太好用 act 了,这时候就是改一行 push ,改一行 push 这样
淡定,纯经验积累。当你有长久和这些 CI/CD 平台,云平台斗智斗勇的话,就会有对应的直觉经验了
😂
针对您提到的Node.js中act
、本地执行和GitHub Actions执行结果不一致的问题,这通常是由于环境差异、依赖管理或配置不一致导致的。以下是一些排查和解决此问题的建议:
-
环境检查: 确保本地环境和GitHub Actions环境尽量一致。可以使用
node -v
和npm -v
(或yarn -v
)检查Node.js和包管理器的版本。 -
依赖锁定: 使用
package-lock.json
或yarn.lock
文件锁定依赖版本,避免不同环境安装不同版本的依赖。 -
脚本一致性: 检查
package.json
中的脚本命令,确保它们在所有环境中都一致。 -
使用
act
模拟GitHub Actions:act
是一个可以在本地模拟GitHub Actions的工具。您可以通过运行act <workflow-name>
来模拟GitHub Actions的执行环境。 -
调试日志: 在GitHub Actions的workflow文件中添加详细的调试信息,例如打印环境变量、依赖版本等。
-
示例代码: 在GitHub Actions的workflow文件中,可以添加如下脚本打印环境信息:
name: Node.js CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Print environment info run: | echo "Node.js version: $(node -v)" echo "npm version: $(npm -v)" # 其他调试信息
通过上述步骤,您应该能够定位并解决act
、本地执行和GitHub Actions执行结果不一致的问题。