跳转到主要内容

HuBMAP计算管道发布管理脚本

项目描述

https://travis-ci.cn/hubmapconsortium/salmon-rnaseq.svg?branch=master https://img.shields.io/badge/code%20style-black-000000.svg

HuBMAP管道发布管理

概述

此包提供了一个便利的脚本,用于自动化HuBMAP计算分析管道生产版本的一些打标签和发布方面。

安装

运行 python3 -m pip install hubmap-pipeline-release-mgmt.

用法

安装完包后,导航到包含管道的存储库,并确保主分支是你想作为新标记版本发布的,包括任何子模块的提交状态。(有关设置全局或每个管道的持久配置参数,包括“主”分支的名称,请参阅配置。)

选择一个新版本号(最好以v开头),例如v1.0,然后运行

tag_release_pipeline v1.0

脚本的大部分都是自动化的,但Git会要求你输入一个标签消息(通过打开文本编辑器),除非通过此脚本的--tag-message参数提供了标签消息。

要使用GPG签名Git标签,追加--sign(如果你想要使用非默认密钥签名,请添加--sign=preferred@email.address)。

(您的本地主分支可能落后或领先于远程版本 – 如果落后,将通过 git pull 更新,如果领先,则通过 git push 更新远程分支。但是,主分支及其远程版本不能发生 分歧;如果发生这种情况,tag_release_pipeline 将会终止。)

tag_release_pipeline 脚本对您的存储库状态做出了一些假设,如果这些假设被违反,脚本可能会大声失败,并使您的本地副本处于任意状态。为了获得最佳效果,请确保您没有进行任何本地修改(尽管在准备管道的发布版本时您本来就不应该这样做)。

在较高层面上,tag_release_pipeline 执行以下操作:

  • 检出主分支,进行拉取/推送,使其及其远程版本匹配

  • 检出或创建一个发布分支,如果检出已存在的本地分支,则使用 git pull --ff-only

  • 将主分支同步到发布分支 – 注意,这 不是 合并;发布分支的先前内容将被完全覆盖

  • 将所有子模块的内容更新为与主分支中提交的版本匹配

  • 使用 multi-docker-build 包在 docker_images.txt 中构建所有 Docker 镜像

  • 将所有镜像标记为 latest 和新的标记名称

  • 将所有 Docker 镜像/标记推送到 Docker Hub

  • 更新所有 CWL 文件,以使用从管道存储库构建的任何图像的标记版本(即 docker_images.txt 中列出的图像)

  • 提交更新的 CWL 文件(在发布分支上)

  • 标记新的提交,签名或不签名

  • 推送主分支、发布分支和新标记

选项

--pretend

不运行任何会修改任何 Git 仓库或 Docker 镜像的操作。这将仍然运行 git branch -a 来获取 Git 分支列表,但不会进行任何修改。这将打印出将要运行的所有命令。

--tag-message

(别名:-m)使用此字符串作为标记消息。这被传递给 Git 的 -m 参数 git tag,这将阻止 Git 交互式地请求标记消息。

--sign

使用您默认的身份用 GPG 签名新的标记

--sign=identity

使用指定的身份(电子邮件地址)用 GPG 签名新的标记

--no-push

不要将任何内容推送到 Docker Hub 或 Git 远程仓库。所有内容都将本地提交、标记和构建。

--main-branch

主分支的名称。覆盖默认(master)和配置文件中找到的任何内容。

--release-branch

发布分支的名称。覆盖默认(release)和配置文件中找到的任何内容。

--remote-repository

远程仓库的名称。覆盖默认(origin)和配置文件中找到的任何内容。

配置

此包使用 confuse 库读取用户和管道配置。默认配置指定分支名称、远程仓库名称以及是否为管道的每个发布版本签名,如下面的 config_default.yaml 内容所示:

main_branch: master
release_branch: release
remote_repository: origin
sign: false

此配置可以全局覆盖(影响此包的所有使用)以及为每个仓库单独覆盖。这些配置参数按此顺序读取,每个来源覆盖先前的配置。

  1. 如上所示的包默认配置

  2. 全局(用户)配置来自 ~/.config/hubmap_pipeline_release_mgmt/config.yaml(在 Linux 上)

  3. 管道配置选项,来自管道仓库根目录下的 pipeline_release_mgmt.yaml

  4. 传递给 tag_release_pipeline 脚本的命令行参数

例如,要默认使用特定的 GPG 密钥签名所有 Git 标签,您可以创建上述用户配置文件,包含

sign: mruffalo@cs.cmu.edu

默认的 main_branch 可能会在不久的将来发生变化。

需求

Python 3.6 或更高版本。

以下包依赖项在通过 pippython setup.py install 安装时应自动安装

  • multi-docker-build PyPI 包的 0.7.1 或更高版本

  • confuse,(近期)版本不重要

项目详情


下载文件

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

源代码分发

此版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分发

hubmap_pipeline_release_mgmt-0.6.1-py3-none-any.whl (20.4 kB 查看哈希值

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面