【问题标题】:fs overwrites file on Jenkins instead of appendingfs 覆盖 Jenkins 上的文件而不是附加
【发布时间】:2018-09-15 04:38:49
【问题描述】:

我有一个小型 NodeJs 应用程序,它执行一些操作,最后,它将结果附加到一个文本文件中。该脚本在本地工作,但是当我在 Jenkins 上运行它时,该文件被覆盖而不是附加。关于出了什么问题的任何想法?

 fs.appendFile('timing.txt', new Date().toISOString() + ' ' + timing + '\n', 
 function(err) {
    if(err) {
        console.log('Something went wrong when writing to the file');
    }
});

【问题讨论】:

  • appendFile 在 Jenkins 作业中执行时不太可能被破坏。该文件更有可能在 Jenkins 环境中不存在,在这种情况下,appendFile 将创建一个新文件。您的 Jenkins 工作是否会在运行前破坏工作空间?如果没有明显的原因导致文件不存在,那么您可以在尝试 appendFile 之前检测您的 Node 脚本以报告该文件是否存在。此外,如果你真的很不走运,Date() 可能会在作业运行时发生变化。
  • 我确信工作空间没有被清除,因为我修改了代码以向文件名添加时间戳。经过几次构建后,出现了多个具有不同时间图的文件。

标签: node.js fs


【解决方案1】:

我想通了。 Timing.txt 已签入 Git。 每次运行后,timing.txt 都会被我的代码修改。 在下一次运行时,Git 会检测到我的工作区中的 timing.txt 与 Git 中的版本不同,因此,它会再次检查它,从而“覆盖”我之前运行的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 2012-06-18
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多