管理hackage版本

Cli*_*ton 5 git haskell github hackage travis-ci

目前,当我想更新我的一个hackage包时,我会经历这个过程.

  1. 将更改推送到github
  2. 等待travis-ci运行更改,以确保我没有收到任何构建错误.
  3. 上传到hackage
  4. 在git中标记发布.

当然,如果前一步骤成功,我只想做这些步骤.

我认为其他人有类似的工作流程,有什么能做所有这些步骤吗?我可能在脚本中做(1),(3)和(4),虽然(2)我不太确定(也就是检查travis-ci的结果),但这似乎是一个常见的问题我想知道是否有人已经解决了它所以我不重新发明轮子.

Haw*_*ins 2

如今,Travis CI 文档使这变得非常简单,您可以按照他们的部署文档来设置条件部署(即,当创建 git 标签时)。您也可以根据 travis 文档将其配置为直接部署到 hackage 。

这是一个半完整的示例配置:

deploy:
  provider: hackage
  username: "Hackage User Name"
  password: "Hackage Password"
  on:
    tags: true
Run Code Online (Sandbox Code Playgroud)

根据 Travis 文档,“建议对密码进行加密。假设您安装了 Travis CI 命令行客户端,您可以这样做:travis encrypt --add deploy.password”。请参阅他们有关加密的文档以获取更多帮助,因为不幸的是我以前没有做过这部分。

这会稍微改变您的工作流程;最终结果将是:

  1. 标记更改并将更改推送到 GitHub
  2. 等待Travis测试,如果一切顺利,Travis会帮你上传到Hackage
  3. 如果一切都不好,请修复错误并选择一个新标签。您也许可以通过删除并重新标记来重新使用该标签,但我不确定 Travis 是否会接受它

因此,如果您可以在本地运行任何测试,请合理确定一切正常,您可以标记发布并推送,Travis 将完成剩下的工作。