我正在做一个基于Node.js的项目。我有一个npm脚本,可以生成代码的文本文件报告(例如npm run scriptThatGeneratesReport
生成一个文件report.txt,替换任何同名的现有文件的内容)。
目前,当我们准备在给定分支上创建一个pull request时,我们运行这个脚本并将更改提交到report.txt。然后,当我们创建pull request时,审阅者可以看到对该文件的更改沿着与目标分支相比,分支中包含的其他代码更改。但是,我们不需要存储库中的此报告文件。我们提交它只是为了在查看pull请求时可以看到发生了什么变化。
有没有一种方法可以自动执行这个步骤,这样我们就不必手动运行scriptThatGeneratesReport
并将report.txt提交到分支?
我可以将脚本添加到我们的Bitbucket管道中,这样它就可以运行并生成如下所示的文件:
image: node:18
definitions:
steps:
- step: &run-script
name: Run script that generates output
caches:
- node
script:
- npm install
- npm run scriptThatGeneratesReport
pipelines:
pull-requests:
"**":
- step: *run-script
branches:
master:
- step: *run-script
但是我还需要为目标分支运行它,并以某种方式让Bitbucket将更改显示为pull request diff的一部分。有办法做到这一点吗?
1条答案
按热度按时间t98cgbkg1#
默认情况下,Bitbucket将在管道结束时放弃对拉取的代码所做的任何更改,包括您生成的报告。为了避免这种情况,您需要将更改推回您的分支。Bitbucket有一个关于如何做到这一点的detailed article:
至于在目标分支上运行命令,您必须将其拉到一个单独的文件夹中。让你的Bitbucket管道把工作交给一个
sh
脚本可能更好,这个脚本比Bitbucket中提供的yaml有更多的脚本功能。