用于发布HuBMAP计算管道的管理脚本

hubmap-pipeline-release-mgmt的Python项目详细描述


概述

这个包提供了一个方便的脚本,它自动化了 标记和发布HuBMAP计算版的生产就绪版本 分析管道。在

安装

运行python3 -m pip install hubmap-pipeline-release-mgmt。在

使用

安装包后,导航到包含 管道,并确保master分支是您想要的 作为一个新的标记版本发布(包括任何 子模块)。在

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

tag_release_pipeline v1.0

大部分脚本都是自动化的,但是Git会要求您提供一个标记消息(通过 打开文本编辑器),除非将标记消息作为参数提供 通过--tag-message参数编写脚本。在

要使用GPG对Git标记进行签名,请附加--sign(如果要使用 一个非默认密钥,add--sign=preferred@email.address。)

(您的本地master分支可以在^{tt9}之后或之前$ –如果落后,它将更新为git pull,如果在前面 origin/master将用git push更新。您的master分行 然而,origin/master不能使发散,但是;tag_release_pipeline 如果是这种情况,将中止。)

tag_release_pipeline脚本对状态做了几个假设 如果违反了这些假设,脚本将 可能会大声失败,并将本地副本置于任意状态。确保 为了获得最佳效果,你没有局部修改(尽管你不应该这样做, 如果准备管道的发布版本)。在

在高层,tag_release_pipeline会:

  • 签出master分支,拉/推使它与origin/master匹配
  • 签出或创建release分支
  • master合并到release
  • 更新所有子模块的内容以匹配在master
  • docker_images.txt中生成所有Docker容器,使用 multi-docker-build
  • 将所有容器标记为latest,并使用新的标记名
  • 将所有Docker容器/标签推送到Docker Hub
  • 更新所有CWL文件以使用从中生成的任何容器的标记版本 管道存储库(,即docker_images.txt中列出的存储库)
  • 提交更新的CWL文件
  • 标记新提交,是否签名
  • 推送masterrelease分支和新标记

选项:

--pretendDon’t run anything that would make any modifications to any Git repositories or Docker images. This will still run ^{tt30}$ to obtain the list of Git branches, however. This will print all commands which would be run.
--tag-message(alias: ^{tt31}$) Use this string as the tag message. This is given to Git as the ^{tt31}$ argument to ^{tt33}$, which stops Git from asking for a tag message interactively.
--signSign the new tag with GPG using your default identity.
--sign=identity
Sign the new tag with GPG, using the specified identity (email address).
--no-pushDon’t push anything to Docker Hub or the Git remote repository. Everything will be committed, tagged, and built locally.

要求

  • Python3.6或更新版本。在
  • multi-docker-buildPyPI包的0.3或更新版本(它 应自动安装)。在

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

推荐PyPI第三方库


热门话题
maven字段#getGenericType()抛出java。lang.TypeNotPresentException   用java绘制三角形的几何图形   java无法下载主题和发件人地址(rediff)   java如何使代码线程安全   java在尝试转换FileInputStream中的文件时,我遇到了一个FileNotFound异常   java Moxy和Jackson如何将Json映射到Pojo   在foreach循环中使用BufferedWriter生成新行的java问题   java为什么我的测试在单次执行中运行时间小于1秒,而在maven构建中运行时间大于20秒?   java如何显示下载附件的进度条   了解java rmi的良好实践   .net可以将Java portlet嵌入ASP。网页?   循环如何多次执行Java方法?   java如何确保用户输入在给定的有效范围内?   java单元测试定理   java如何在IntelliJ上运行外部构建项目?   JAVA:试图编写一个检查字符串是否为数字的方法。总是返回错误   javahadoop将特定键的所有map方法生成的所有值都发送到一个reduce方法,对吗?   在java中读取和使用文件