Perl6的开发如何做到自动化?只需要一个应用Tomtit。
Tomtit是一个全新的Perl6任务运行器,可让你很便捷地自动执行日常任务。
本文中,我们将展示如何使用Tomtit实现Perl6开发自动化,我们以实例展示Perl6开发中的典型场景:设置git存储库、测试本地源代码、安装本地源代码、发布CPAN模块。关于Tomtit的详细介绍请参考文章(https://dev.to/melezhik/one-tomtit-for-it–1j3f)。
本文译自Alexey Melezhik 的博客,原文链接 https://dev.to/melezhik/automation-of-perl6-development-workflow-through-the-tomtit-task-runner-10jj
安装
Tomit的安装很简单只需通过Perl6 模块生态系统命令zef:
zef install Tomtit
现在让我们从远程git存储库获得本实例应用程序源代码:
git clone $ git-repo
Tomtit实例
本文的内容限制为在Perl6开发和发布时典型的应用场景:设置git存储库、测试本地源代码、安装本地源代码、发布CPAN模块。
首先我们为每个涉及的实例定义tomtit场景。场景配置文件位于.tom目录中,配置文件为纯Perl6脚本,同这些脚本调用Tomtit API。
案例1.设置git存储库。
在新建应用时候,先要设置用户和电子邮件,这样可以支持push到远程git仓。我们也希望在缓存中保存git密码。防止每次手动输入,这些任务都可以在.tom文件中配置:
1 2 3 4 5 6 7 |
.tom/set-get.pl6: task-run "set git", "git-base", %( name => 'chongchong', config_scope => 'local', set_credential_cache => 'on' ); |
实例中的工作流程有点复杂,需要将源代码推送到GitHub和BitBucket两个远程库。
为push操作的任务场景配置也很容易:
1 2 3 4 5 6 7 8 9 10 |
.tom/push-gh.pl6: # push到 github bash "git push origin master"; .tom/push-bb.pl6: # push 到bitbucket bash "git push bb master"; .tom/push.pl6: # push到github和bitbucket EVALFILE ".tom/push-bb.pl6" EVALFILE ".tom/push-gh.pl6" |
案例2.测试本地源代码。
对于许多Perl6项目,会通过zef test测试
在t/目录中的单元测试用例,本例子中我们还要做Outthentic测试并且验证META6.json文件,看看是否有任何JSON语法错误,任务的配置实例如下:
1 2 3 4 |
.tom/test.pl6: task-run "check json files", "json-lint", %( path => "{$*CWD}" ); bash "zef test ."; bash "sh run-test.sh"; |
案例3.安装源代码。
该操作简单,只是在当前工作目录的下执行zef install命令。
1 2 |
.tom/install.pl6: bash "zef install . --force-install"; |
案例4.打包成CPAN模块,并自动发布
实例中我们使用App::Mi6工具将Perl6模块打包并发布到CPAN,执行该操作首先要在它需要通过~/.pause配置CPAN Update的用户和密码,下面是该任务的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
.tom/set-pause.pl6: my $password = prompt("enter your CPAN password: "); template-create "/home/{%*ENV<USER>}/.pause", %( mode => '700', variables => %( user => 'chongchong', password => $password ), source => q:to /TEMPL/ user [%= user %] password [%= password %] TEMPL ); |
发布的任务配置就简单了:
1 2 3 |
.tom/release.pl6: zef "App::Mi6"; bash "mi6 release"; |
工作流程
当tomtit场景准备就绪时,开发工作流就变的简单明了,当一切都配置到位的时候:
1、chekout应用程序源代码:
1 |
git clone <span class="nv">$git</span>-repo |
2、安装Tomtit:
1 |
zef intall Tomtit |
3、列出可用的tomtits任务:
1 |
tom --list |
4、修改源代码
1 |
vim foo/bar/app.pl6 |
5、运行测试:
1 |
tom test |
安装应用:
1 |
tom install |
6、设置git repo:
1 |
tom git-setup |
7、提交更改
1 |
git commit -a |
8、推送更改:
1 |
tom push |
9、设置PAUSE帐户凭据:
1 |
tom set-pause |
10、发布到CPAN:
1 |
tom release |
结论
本文中,我们实现了Perl6开发的自动化任务执行过程,所有操作只需要Tomtit就可以实现。更多典型任务请关注官方文档和探索。