Tomtit是一个全新的Perl6任务运行器,可让你很便捷地自动执行日常任务。

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文件中配置:

.tom/set-get.pl6:

task-run "set git", "git-base", %(

email                => 'chongchong@ijz.me',

name                 => 'chongchong',

config_scope         => 'local',

set_credential_cache => 'on'

);

实例中的工作流程有点复杂,需要将源代码推送到GitHub和BitBucket两个远程库。

为push操作的任务场景配置也很容易:

.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语法错误,任务的配置实例如下:

.tom/test.pl6:

task-run "check json files", "json-lint", %( path =>  "{$*CWD}" );

bash "zef test .";

bash "sh run-test.sh";

案例3.安装源代码。

该操作简单,只是在当前工作目录的下执行zef install命令。

.tom/install.pl6:

bash "zef install . --force-install";

案例4.打包成CPAN模块,并自动发布

实例中我们使用App::Mi6工具将Perl6模块打包并发布到CPAN,执行该操作首先要在它需要通过~/.pause配置CPAN Update的用户和密码,下面是该任务的配置文件:

.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

);

发布的任务配置就简单了:

.tom/release.pl6:

zef "App::Mi6";

bash "mi6 release";

工作流程

当tomtit场景准备就绪时,开发工作流就变的简单明了,当一切都配置到位的时候:

1、chekout应用程序源代码:

git clone $git-repo

2、安装Tomtit:

zef intall Tomtit

3、列出可用的tomtits任务:

tom --list

4、修改源代码

vim foo/bar/app.pl6

5、运行测试:

tom test

安装应用:

tom install

6、设置git repo:

tom git-setup

7、提交更改

git commit -a

8、推送更改:

tom push

9、设置PAUSE帐户凭据:

tom set-pause

10、发布到CPAN:

tom release

结论

本文中,我们实现了Perl6开发的自动化任务执行过程,所有操作只需要Tomtit就可以实现。更多典型任务请关注官方文档和探索。

通过Tomtit实现Perl6开发工作流程的自动化相关推荐

  1. travis ci_如何使用Travis CI和GitHub进行Web开发工作流程

    travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...

  2. githooks_使用Githooks改善团队的开发工作流程

    githooks by Daniel Deutsch 由Daniel Deutsch 使用Githooks改善团队的开发工作流程 (Improve your team's development wo ...

  3. centos 开发套件_替代的Laravel套件开发工作流程

    centos 开发套件 This article was peer reviewed by Francesco Malatesta. Thanks to all of SitePoint's peer ...

  4. 开发工作流程_您应该了解的9个开发工作流程升级

    开发工作流程 Every once in a while I run into a tool or plugin so useful I can't not add it to my arsenal. ...

  5. Design Development Workflow with Framer X 使用Framer X进行设计和开发工作流程 Lynda课程中文字幕

    Design & Development Workflow with Framer X 中文字幕 使用Framer X进行设计和开发工作流程 中文字幕Design & Developm ...

  6. DJI OSDK开发笔记(N3飞控)(1)——开发工作流程

    DJI OSDK开发笔记(N3飞控)(1)--开发工作流程 API层次结构 硬件设置 一般设置 数据 串口 连接器引脚排列 连接到记载计算机 软件环境设置 所有平台 下载SDK和所需工具 更新固件 启 ...

  7. 程序员-开发工作流程英文术语

    想润的程序员必备基础常识 基本流程 需求-设计-实现 ticket 触发 CR Code Review代码审查 deploy oncall 亚麻为例,有sev1-sev5的严重程度 dev list ...

  8. 利用jenkins的api来完成相关工作流程的自动化

    [本文出自天外归云的博客园] 背景 1. 实际工作中涉及到安卓客户端方面的测试,外推或运营部门经常会有很多的渠道,而每个渠道都对应着一个app的下载包,这些渠道都记录在安卓项目下的一个渠道列表文件中. ...

  9. 基于模型的嵌入式开发流程_如何使用基于模型的测试来改善工作流程

    基于模型的嵌入式开发流程 Unit testing is not enough – so let's start using model-based testing to improve our wo ...

最新文章

  1. Asakura的魔法世界
  2. Wireshark默认不抓取本地包的解决方式
  3. go使用SQLite数据库
  4. ThreadGroup其实比ExecutorService更好
  5. 转账示例(二):service层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)...
  6. myeclipse java注释模板_Eclipse/MyEclipse Java注释模板设置详解 ---转载自百度空间
  7. UIBackgroundTaskIdentifier 进入后台后结束任务再挂起APP
  8. Proteus里设置任意电源值的POWER的实现
  9. php 图片印章_在线生成实用又方便 (图片印章)
  10. 【PyG入门学习】三:信息传递机制
  11. 鼠标滑轮控制Div水平滚动
  12. kettle连接sqlserver报错
  13. 【正十七边形的尺规作图】
  14. leetcode Rotate Image
  15. JSONObject 的清除
  16. mybatis自动识别数据库关键字
  17. 2022华为开发者大赛 首届·厦门开发者创新应用赛在厦门举办
  18. 为使用 GRUB2 的机器配置网络引导(PXE启动服务器)
  19. 9.3.2 从 ZIP 文件中解压缩
  20. 【arduino】esp8266---wifi模块接线和程序烧录

热门文章

  1. 蒋晓海:Testin云测,如何让应用更有价值
  2. 三国群雄传ol服务器 修改,三国群雄传四大兵营进阶改造攻略详解
  3. HBuilder真机联调iPhone手机设备问题+未受信任企业处理方法
  4. 如何在world文档框框里打钩
  5. 水文预报 求各个年份的纳什效率系数
  6. 风险管理中的风险预测、风险评估、风险控制
  7. http协议规定的数据格式
  8. 如何求1^k+2^k+...+n^k
  9. 新茶饮加速“去泡沫”
  10. Qlik之的应用备份(.qvf) (六)