Skip to main content

适用于 GitHub、JIRA 和 TeamCity 的开发工作流管理 CLI

项目描述

建造徽章 覆盖率徽章 发布徽章 格式徽章 执照徽章 Python版本徽章

Zazu 是一个 CLI 开发工作流管理工具,它将 git flow 的元素与 CI 和问题跟踪相结合。

https://g.gravizo.com/svg?digraph%20G%20{"Zazu"->"ContinuousIntegration""ContinuousIntegration"->"TeamCity""Zazu"->"IssueTracker""IssueTracker"->"JIRA" "IssueTracker"->"GitHub""Zazu"->"CodeReview""CodeReview"->"GitHub""Zazu"->"CodeStyle""CodeStyle"->"ArtisticStyle""CodeStyle"->"ClangFormat""CodeStyle "->"autopep8"}

Zazu 是用 Python 实现的,是一个 基于Click的 CLI。如果您想知道为什么单击,这是一个很好回答的 问题。

安装

先决条件(Linux)

sudo apt-get install python-dev libssl-dev libffi-dev

所有平台

sudo pip install --upgrade pip
sudo pip install zazu

如果您收到有关名为“six”的软件包的错误,请改用以下命令:sudo pip install --upgrade --ignore-installed zazu

命令概述

下图显示了 zazu 的可用子命令。

https://g.gravizo.com/svg?digraph%20G%20{"zazu"->"build""zazu"->"tool""tool"->"install""tool"->"uninstall" "zazu"->"style""zazu"->"repo""repo"->"setup""setup"->"hooks""setup"->"ci""repo"->"cleanup""repo "->"repo_init"repo_init[label=init,style=dashed]"repo"->"clone""zazu"->"dev""dev"->"start""dev"->"status"dev_builds[ label=builds,style=dashed]"dev"->"dev_builds""dev"->"review""dev"->"ticket"}

注:虚线尚未实现

回购管理

  • zazu repo clone <name>克隆 repo 并安装 GIT 钩子

  • zazu repo init <name>将 repo 初始化为默认项目结构(未实现)

  • zazu repo setup hooks将默认的 GIT hooks 安装到 repo

  • zazu repo setup ci根据 repo 中的 zazu.yaml 文件设置 CI 构建

CI 构建配置管理

Zazu 可以设置 CI 服务器构建(目前仅支持 TeamCity)来构建由配方文件(repo 根目录中的 zazu.yaml 文件)指定的目标。

  • zazu repo 设置 ci

开发工作流程管理

  • zazu dev start交互式创建新票

  • zazu dev start <名称>例如 zazu dev start LC-440_a_cool_feature

  • zazu dev status显示票证和拉取请求状态

  • zazu dev ticket将 Web 浏览器启动到票务页面

  • zazu dev builds启动 Web 浏览器到 CI 项目页面

  • zazu dev review启动 Web 浏览器以创建/查看拉取请求

代码风格执行

  • zazu style使用 astyle 和 autopep8 修复代码样式

建造

Zazu 使用 zazu.yaml 文件来构建在那里定义的目标

  • zazu build <目标>

  • 目标架构假定为“本地”,但可以使用 –arch 标志覆盖。例如 zazu build --arch=arm32-linux-gnueabihf将针对 32 位 arm linux 构建。

将变量传递给构建

您可以使用 key=value 对将额外的变量传递给构建。 zazu build --arch=arm32-linux-gnueabihf package FOO=bar在构建期间将环境变量FOO设置为值bar

构建工具安装

Zazu 将自动尝试获取 zazu.yaml 文件中指定的每个目标所需的构建工具。这些也可以手动安装/卸载:

  • zazu 工具安装<tool==version>

  • zazu 工具卸载<tool==version>

这些工具将安装到~/.zazu/tools/文件夹中。

zazu.yaml 文件

zazu.yaml 文件位于 repo 的基础上,描述了要运行的 CI 目标和架构。此外,它还描述了每个目标的要求。

components:
  - name: networkInterface
    goals:
      - name: coverage
        description: "Runs the \"check\" target and reports coverage via gcovr"
        buildType: coverage
        buildVars:
              LOCAL_SERVER: ON
        builds:
          - arch: x86_64-linux-gcc
      - name: package
        buildType: minSizeRel
        builds:
          - arch: arm32-linux-gnueabihf
            requires:
              zazu:
                - gcc-linaro-arm-linux-gnueabihf==4.9
          - arch: x86_64-linux-gcc

issueTracker:
    type: github
    owner: stopthatcow
    repo: zazu

codeReviewer:
    type: github
    owner: stopthatcow
    repo: zazu

style:
  exclude:
    - dependencies/ #list path prefixes here to exclude from style
    - build/
  astyle:
    options:
      - "--options=astyle.conf" # options passed to astyle
    include:
      - src/*.cpp # list of globs of files to style
      - include/*.h
      - test/*.cpp
  autopep8:
    options:
      - "--max-line-length=150" # options passed to autopep8

  zazu: 0.2.0 # optional required zazu version

编译器元组

体系结构被定义为以下形式的元组: <ISA>-<OS>-<ABI>

例子

  • x86_64-linux-gcc

  • x86_32-linux-gcc

  • x86_64-win-msvc_2013

  • x86_64-win-msvc_2015

  • x86_32-win-msvc_2013

  • x86_32-win-msvc_2015

  • arm32-linux-gnueabihf

  • arm32-none-eabi

命令自动完成

请注意,自动完成目前仅适用于命令和子命令(不是参数)。

BASH 用户

将以下内容添加到您的 ~/.bashrc文件中:

eval "$(_ZAZU_COMPLETE=source zazu)"

ZSH 用户

将以下内容添加到您的~/.zshrc文件中

autoload bashcompinit
bashcompinit
eval "$(_ZAZU_COMPLETE=source zazu)"

方便的别名

alias zz="zazu"
alias zd="zazu dev"
alias zds="zazu dev start"
alias zdr="zazu dev review"
alias zdt="zazu dev ticket"
alias zdb="zazu dev builds"
alias zs="zazu style"
alias zb="zazu build"

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

zazu-0.10.0-py2-none-any.whl (48.6 kB 查看哈希

已上传 2 7