使用Travis-CI跟踪github上生成的文件大小

时间:2015-10-20 18:47:11

标签: javascript github travis-ci

我想跟踪我的缩小JavaScript包的大小,因为它受到GitHub上拉取请求的影响:

combined JS code size changes by +0.68%

我想在Travis-CI构建的每次提交中看到GitHub状态下生成文件的大小更改。这与coveralls.io和其他工具在更改时跟踪代码覆盖率的方式类似。

我该怎么做?有现有的工具吗?写我自己很简单吗?

1 个答案:

答案 0 :(得分:5)

GitHub在提交时提供simple API发布状态。

通过在Travis-CI environment variable中放置GitHub OAuth令牌,您可以运行curl命令来发布状态:

filesize=$(wc -c < path-to-script.min.js | sed 's/ //g')
curl -H "Authorization: token $GITHUB_TOKEN" \
  --data '{"context": "file size", "description": "'$filesize' bytes", "state": "success"}' \
  https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/$TRAVIS_COMMIT

计算拉取请求导致的文件大小变化比较棘手。我最后创建了一个Python脚本来执行此操作,您可以在travis-weigh-in repo中找到它。有了它,你只需在你的Travis构建中运行它:

python weigh_in.py path-to-script.min.js

它将产生提交状态,如问题截图中的那个。