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

dan*_*nvk 3 javascript github travis-ci

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

合并JS代码大小变化+ 0.68%

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

我怎样才能做到这一点?有现有的工具吗?写我自己很简单吗?

dan*_*nvk 6

GitHub提供了一个简单的API,用于在提交时发布状态.

通过在Travis-CI环境变量中放置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
Run Code Online (Sandbox Code Playgroud)

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

python weigh_in.py path-to-script.min.js
Run Code Online (Sandbox Code Playgroud)

它会产生提交状态,如问题截图中的状态.