项目构建工具twine、Kobalt、Screwdriver、WebhookForCoding介绍

以下为你介绍的项目构建工具都可用在Linux系统上:twine(用于与 PyPI 交互的实用工具)、Kobalt(现代的通用的构建系统)、Screwdriver(持续交付构建系统)、WebhookForCoding(自动部署工具)。

1、twine(用于与 PyPI 交互的实用工具)

Twine 是用于与 PyPI 交互的实用工具。现在它还只支持创建项目以及上传代码。

特性:

已验证HTTPS连接。

上传不需要执行setup.py。

上传已经创建的文件,允许在发布前测试发行版。

支持上传任何包装格式(包括轮子)。

安装命令:

$ pip install twine

使用twine:

1]、以常规方式创建一些发行版:

$ python setup.py sdist bdist_wheel

2]、用twine上传以测试PyPI,并验证一切看起来正确,Twine会自动提示您输入用户名和密码:

$ twine upload --repository-url https://test.pypi.org/legacy/ dist/*

username: ...

password:

...

3]、上载到PyPI:

$ twine upload dist/*

下载地址:https://gitee.com/mirrors/twine

2、Kobalt(现代的通用的构建系统)

Kobalt 是一个由Gradle和Maven启发的现代化通用的构建系统。它重用了这两个成功和流行的构建系统的最好的概念,同时增加了自己的一些现代功能。Kobalt完全在Kotlin中编写,其构建文件也是有效的Kotlin文件。

Kobalt的最突出的功能:

清除、构建文件的最小语法。

自动完成在IDE中构建文件。

大部分任务是增量的。

直观的插件架构。

示例代码:

import com.beust.kobalt.*

import com.beust.kobalt.plugin.java.*

import com.beust.kobalt.plugin.packaging.*

import com.beust.kobalt.plugin.publish.*

val jcommander = project {

name = "jcommander"

group = "com.beust"

artifactId = name

version = "1.52"

dependenciesTest {

compile("org.testng:testng:")

}

assemble {

mavenJars {

}

}

bintray {

publish = false

}

}

在IDE中构建文件自动完成:

由于Kobalt的构建文件是实际的Kotlin文件,因此您不仅可以利用自动补全功能来编写构建文件,而且IDEA的全部功能也唾手可得,您可以用自己认为合适的任何方式来编写这些文件:使用表达式,条件,类,扩展功能,常量。

Kobalt使用Kotlin的类型安全构建器模式来提供与Gradle非常相似且极简的DSL,同时允许您在必要时切换到完整的Kotlin代码。

这是自动完成对话框的示例:

项目构建工具twine、Kobalt、Screwdriver、WebhookForCoding介绍

下载地址:http://beust.com/kobalt/

3、Screwdriver(持续交付构建系统)

Screwdriver 是 Yahoo 开源的持续交付构建系统,Screwdriver 的一些关键设计功能帮助 Yahoo 实现了大规模持续交付能力。从宏观看,这些关键设计是:使部署管道容易、优化主干开发、使回滚容易。

轻松部署管道:部署持续测试、集成和部署的代码到生产环境的管道时,大大降低错误的风险,并缩短了获得开发人员反馈的时间。通常,许多团队面临的挑战是设置和维护管道很麻烦。Yahoo 工程团队设计了一个解决方案,使管道易于配置,并为任何开发人员提供完整的自助服务。通过管理代码库中的管道配置,Screwdriver 允许开发人员以他们熟悉的方式配置管道,另一个好处是,也可以轻松地审查管道的变化。

主干开发:在 Yahoo 内部,鼓励主干代码总是可交付的工作流程。团队使用修改后的 GitHub 流程来完成工作流程。 Pull Requests(PR)是运行测试的入口点,确保进入仓库的代码已经过充分测试。坚持正式 PR 也提高了代码审查的质量。

为了确保主干是可交付的,在 PR 中启用代码的功能测试。在内部,这是一个配置管道,动态分配计算资源,部署代码和运行测试。这些测试包括使用 Selenium 等工具的 Web 测试。这些动态分配的资源也可在 PR 构建之后的一段时间内也照常使用,从而让工程师与系统交互,并以可视化的方式检查其变化。

容易回滚:为了允许简单的代码回滚,允许这样管道的阶段:重新运行前保存的状态。工程团队利用 PaaS 中的功能来处理部署,但是通过存储和传递元数据以便能够用具有相同部署数据重新运行特定 git SHA。这样,可以回滚到生产环境中的先前状态。此设计使回滚很容易,只要从下拉菜单中选择一个版本并单击“部署”即可。任何有项目写权限的人都可以进行此更改。这有助于将团队迁移到 DevOps 模型,这个模型让开发人员负责生产环境中的状态。

项目构建工具twine、Kobalt、Screwdriver、WebhookForCoding介绍

4、WebhookForCoding(自动部署工具)

本项目用于 coding.net 的 WebHook,自动让服务器拉取最新代码。

注释预览(局部):

````php

/**

* Master Project Webhook.(for coding.net)

*

* 约定:

*

*  如果项目目录是 /home/wwwroot/Discuz 

*  那么你应该建一个 Discuz.master.php , 这里约定这个文件名前缀就是项目目录名.

*      ( 主要为了一目了然, 定义好一个项目的WebHook文件后, 其余项目与之区别仅在于文件名. )

*      ( 后缀并不要求, 这里是为了与 Discuz.develop.php 区分. )

*  编辑 Discuz.master.php 加入如下code部分.

*

*  include('./src/autoload.php');

*  (new \WebHook\PullMaster('/home/wwwroot', 9981, 'log.txt')); // 对应类中三个属性.

*  // Ok, 在网页端指定 Discuz.master.php 即可.

*

* @farwish

*/

````

实际用法:

`Discuz.master.php`

````php

include('./webhookForCoding/src/autoload.php');

( new \WebHook\PullMaster('/www/web', 8090) );

````

`Discuz.develop.php`

````php

include('./webhookForCoding/src/autoload.php');

( new \WebHook\PullDevelop('/www/web', 8090) );

````

最后设置:

在 coding 项目 '设置' 里的 'WebHook' 项中指定地址和 token。

举例:

alconSeek 项目的 master 分支就设置为 your_ip/alconSeek.master.php

alconSeek 项目的 develop 分支就设置为 your_ip/alconSeek.develop.php

discuz 项目的 master 分支就设置为 your_ip/discuz.master.php

discuz 项目的 develop 分支就设置为 your_ip/discuz.develop.php

注明

以上就是项目构建工具twine、Kobalt、Screwdriver、WebhookForCoding的介绍内容,这些项目构建工具都能使用在Linux操作系统中。

栏目相关文章