包装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分支
----
:目标: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分支
----