使用Lerna通过CI自动释放npm软件包

时间:2018-11-21 09:48:26

标签: git npm continuous-integration lerna

在我的公司中,我们使用lerna来管理JavaScript库的回购。我们大约有30个软件包和10个开发人员正在为此工作。随着团队的成长以及软件包数量的增长,我们正在寻找一种简单的方法来管理我们如何自动发布每个软件包的新版本。

我们每天根据更改的软件包触发几次新版本,以便我们的项目可以使用新库。仅由于我们没有推送到内部npm存储库的凭据,我们才被限制从CI触发发布。因此,我们在本地运行lerna publish --exact --skip-npm来更改每个已更改的程序包,然后合并package.json文件,并通过负责发布部分的CI运行该程序。

随着时间的推移,这会引起问题,尤其是如果多个开发人员尝试同时发布时。或者,当颠覆版本的人不是更改代码的人,并且不知道它是否应该是补丁程序,轻微颠簸等时。

在使用打字稿时,我们遇到的一个想法是将先前发行版中的d.ts文件与新发行版中的d.ts文件进行比较,以了解是否有所更改,并自动决定修改补丁或未成年人。大的颠簸将由开发人员手动完成。尽管d.ts文件不在git repo中,所以做这样的事情会很烦人。

我想知道是否有人有经验来管理此类仓库中的软件包?您的工作空间如何?您如何在持续集成环境中处理发布?

谢谢!

0 个答案:

没有答案