HuBMAP计算管道发布管理脚本
项目描述
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
此配置可以全局覆盖(影响此包的所有使用)以及为每个仓库单独覆盖。这些配置参数按此顺序读取,每个来源覆盖先前的配置。
如上所示的包默认配置
全局(用户)配置来自 ~/.config/hubmap_pipeline_release_mgmt/config.yaml(在 Linux 上)
管道配置选项,来自管道仓库根目录下的 pipeline_release_mgmt.yaml
传递给 tag_release_pipeline 脚本的命令行参数
例如,要默认使用特定的 GPG 密钥签名所有 Git 标签,您可以创建上述用户配置文件,包含
sign: mruffalo@cs.cmu.edu
默认的 main_branch 可能会在不久的将来发生变化。
需求
Python 3.6 或更高版本。
以下包依赖项在通过 pip 或 python setup.py install 安装时应自动安装
multi-docker-build PyPI 包的 0.7.1 或更高版本
confuse,(近期)版本不重要
项目详情
hubmap_pipeline_release_mgmt-0.6.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97dca756d4512ccf2502d7b787b0ebbcabbbc52df7e3a205aeb1c48069683f0e |
|
MD5 | 102f000c457fbbb90348dd25b5e5ac42 |
|
BLAKE2b-256 | 617fcc24c219f85d2d13db72a17dd3fcc20fc1ba212686cbfbdda79488dc5578 |