包装git以自动运行脚本。

giit的Python项目详细描述


简介图片::https://ci.appveyor.com/api/projects/status/mld0fa79ox939fex/branch/master?svg=true
:目标:https://ci.appveyor.com/project/steinwurfaps/giit

…图片::https://travis-ci.org/steinwurf/giit.svg?branch=master
:target:https://travis ci.org/steinwurf/giit

分支和标记上运行命令。

一堆仓库。但是,
如果你发现了它的用途,你也应该能够将它适应于其他场景。


quick start
==


要使用"giit",你需要定义一个"giit.json"文件,其中包含您希望"giit"能够运行的步骤。注意,``giit.json``文件可以
位于存储库的根目录中。



{
"docs":{
"type":"python",
"scripts":[
"sphinx build-b html。${build_path}"
],
"cwd":"${source_path}/docs",
"requirements":"${source_path}/docs/requirements.txt"
}
}


>让我们通过运行"giit"来构建"urllib3"sphinx文档
(https://urllib3.readthedocs.io/en/latest/)``:

giit文档https://github.com/urllib3/urllib3.git--json配置/giit.json


使用git存储库:https://github.com/urllib3/urllib3.git
运行:git clone in/tmp/giit/data/clones/urllib3-b1919a
构建到/tmp/giit/build/urllib3-b1919a
python:sphinx build-b html。/tmp/giit/build/urllib3-b1919a





``giit.json`
===


``giit.json``
====定义不同步骤的地方。让我们浏览一下可以使用的不同属性。


定义步骤
----



下面的"giit.json"中,我们定义了三个步骤:

{
"docs":{

},
"登录页":{

},
"发布":{

}
}


step type
--


该类型定义了步骤中可用的行为和属性。

"giit"命令,例如
"giit docs../dev/project/docs",则"workingtree"作用域将被启用。
*该步骤将运行一次,变量"source\u path"设置为
本地路径。
*这允许用户运行步骤,而无需首先将远程Git存储库。
*``branch`:
*源分支作用域将默认为``master`。
*如果用户将路径传递给``giit``源分支,则源分支将是本地存储库所在的任何分支。
*用户在传递时也可以选择源分支
指向"giit"命令的git url。
*``标记`:
*默认的"giit"将为存储库中的每个标记在此作用域中运行步骤。

默认情况下,所有步骤都默认为仅在"branch"作用域中运行。这可以通过"scope"step属性进行更改。

step内置变量在定义步骤"giit"时会使许多变量可用。

下面是一个示例,我们可以自定义"sphinx build"的输出位置
,如下所示::

{
"docs":{
"type":"python",
"scripts":[
"sphinx build-b html。${build_path}"
]

}


}


将替换上面`${build_path}`中的默认
``giit``生成路径或用户指定的生成路径。

``:生成的输出应该去的路径。
*``源路径`:存储库的路径
*``名称`:根据作用域(例如分支名称或
标记名称)确定的标识符。
*``作用域`:我们所处的作用域。

step user variables
----

使用"variables"属性定义变量。
用户变量是使用以下语法定义的:


,其中"scope"和"remote_branch"是可选的。

考虑
以下示例::

{
"sphinx":{
"type":"python",
"scripts":[
"sphinx build-b html。${output_path}"
],

"变量":{
"分支:源/主:输出路径":"${build_path}/docs/latest",
"分支:output_path":"${build_path}/sphinx/${name}",
"标记:output_path":"${build_path}"/docs/${name},
"workingtree:output_path":"${build_path}/workingtree/sphinx"
}
}
}


ake.

*如果作用域是"branch",分支是"origin/master",则
"output"路径将是"build"路径/docs/latest`.
*对于所有其他分支,"output"路径将是"output"路径,其中"name"将是"branch"名称。s``output_path``将是`${build_path}/docs/${name}``
其中name是标记值,例如``1.0.0``等。
*最后,如果我们在``workingtree``作用域中,那么``output_path``
变量将是`${build_path}/workingtree/sphinx`

让我们看看这看起来如何(``build_path``is``/tmp/project``)::

tag 1.0.0------->;/tmp/project/docs/1.0.0
tag 1.0.0------->;/tmp/project/docs/2.0.0
tag 1.0.0------->;/tmp/project/docs/2.1.0
tag 1.0.0------->;/tmp/project/docs/3.0
分支主控器----->;/tmp/pproject/docs/latest
branch trying_new--->;/tmp/project/sphinx/trying_new
branch new_idea--->;/tmp/project/sphinx/new_idea
工作树----->;/tmp/project/workingtree

"清洁"步骤
………

d_path`.

``python``步骤



`python``步骤支持以下属性:

*强制的``scripts``:要执行的命令列表
*可选的``cwd`:将执行命令的路径``包含要安装的
依赖项的需求文件。如果指定,将创建一个virtualenv。
*可选的"pip"包:要安装的"pip"包的列表。如果
指定将创建一个virtualenv。
*可选的"scope"名称:将运行步骤的"scope"名称列表。
*可选的"allow_failure"名称:一个布尔值,指示是否允许脚本失败。

===============================

``giit``工具有两个强制参数和许多选项:

giit step repository[--options]


参数:``step``
----


选择要运行的``giit.json``文件中的步骤。


参数:``repository`
----

Git存储库的URL或路径。

选项:```--build_path`
-------

设置生成路径(即生成输出工件/数据的位置)。此参数在``giit.json``中可用作`${build_path}``
变量。

它还用作缓存,以加速
生成。

默认值是"origin/master",但是如果需要构建不同的分支,这是一种方法。


选项:``--json-config``
-


设置"giit.json"文件的路径。






factories and dependency injection
可测试性是任何现代软件库的一个关键特性,编写可测试代码的关键技术之一是依赖注入(di)。/>
Git分支
----







欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Android应用程序中处理新活动时出现java NullPointerException   从PSV文件读取Java   在JavaSwing中将方法从一个类传递到另一个类   带有MongoDB错误的java Vertx ClassNotFoundException:com。mongodb。联系溪流工厂   在java中替换2D数组中的数字?   java Avro方案空布尔和双整数布尔的写并集   java导入组织。neo4j无法解决?   从另一个获取变量。使用反射的java文件   Java:以格式化字符串的形式返回具有非常不同的条目长度的2D数组   java客户端应用程序正在从IBMMQ接收不同格式的消息体   java在我的主循环中的步骤有问题   java如何正确安装来自sslforfree的证书。tomcat服务器上的com   java RecyclerView变更单永久   java如何获得屏幕的精确中间位置,即使调整了大小