从github存储库中自动释放。
release-bot的Python项目详细描述
发布bot的发布
在github和pypi上自动发布。
说明
这是一个帮助维护者向用户交付软件的机器人。它是用来监视github存储库的 释放拉取请求。PR必须以下列格式之一命名:
0.1.0版本
如果要创建"0.1.0"上游版本新的主要版本
,然后release bot将启动从"1.2.3"到"2.0.0"的版本新的次要版本
例如"1.2.3"到"1.3.0"新补丁发布
例如"1.2.3"到"1.2.4"
release bot现在仅与semver一起使用。
一旦pr合并,bot将分别创建一个新的github版本和一个pypi版本。
更改日志将从
存储库,必须命名为changelog.md
。新的更改日志
版本必须以版本标题开头,即0.1.0
。
此标题和以前版本的标题之间的所有内容都将被拉入更改日志。
或者,您可以让机器人完成枯燥的工作,更新\u版本
变量,并使用来自git日志的提交消息填充changelog。
您可以通过创建问题来触发此操作,并将其命名为与发布PR相同的名称,例如0.1.0 release
,new major release
,new minor release
,new patch release
。
在此之后,您所要做的就是合并bot将生成的pr。
机器人与
pypa/setuptools\u scm插件。如果
你在使用它,你根本不需要关心\u版本。你可以
同时确保bot会在pypi发布之前
发布软件后,它会检查git repo中的标记。
需要一个release-conf.yaml
文件。有关详细信息,请参见配置部分。
一旦github版本完成,bot将把这个版本上传到pypi。 请注意,您必须设置您的登录详细信息(请参见要求)。
在本地试用
$ pip install release-bot
其他可能的安装是通过 docker,openshift,arch user repository
与release bot的第一个交互可能是github上的自动发布。我们来吧。
<H4>1。创建上游存储库或使用现有存储库这是一个上游存储库,用于发布新版本。
在上游存储库中创建release-conf.yaml
文件,其中包含有关如何发布特定项目的信息。
复制并编辑release-conf.yaml
在release-conf.yaml
末尾添加这行代码:
# whether to allow bot to make PRs based on issuestrigger_on_issue:true
有关可能的高级设置检查" rel="nofollow">上游存储库的文档
<H4>2。创建conf.yaml创建配置文件conf.yaml。您可以使用此存储库中的一个。您需要生成一个github个人访问令牌。
访问令牌的建议权限是:repo
,delete\u repo
,user
在conf.yaml
末尾添加这行代码:
# Name of the account that the github_token belongs to# Only needed for triggering the bot on an issue.github_username:<your_github_username>
注意:此文件不应存储在上游存储库中,因为它包含敏感数据。
有关可能的高级设置,请检查专用存储库的文档。 另外,如果您希望包含PYPI版本,请参见需求。
<H4>3。运行发布程序此时,将安装Release bot。至少设置了两个配置文件release-conf.yaml
和conf.yaml
(可选.pypirc
)。
通过命令启动bot:
$release bot-c<;path_to_conf.yaml>;--调试
您可以向下滚动并查看运行bot的调试信息。
- 在上游存储库中创建一个标题为
0.0.1 release
的问题。您可以选择自己的版本号。 - 等待机器人基于此问题创建新的PR(刷新间隔在
conf.yaml
中设置)。 - 一旦公关被合并,bot将发布一个新版本。
- 查看github上游存储库的发布页面,您将看到新的发布版本
0.0.1
从现在起,您可以通过创建问题来自动创建发行版。
文档
配置
有两个yaml配置文件:
conf.yaml
--bot本身的配置,其中包含一些敏感数据(建议存储在私有repo中)release-conf.yaml
--存储在上游存储库中,包含有关如何发布特定项目的信息。 < > >
专用存储库
您需要设置一个git存储库,在其中存储conf.yaml
和.pypirc
文件。
如果这不是本地存储库,请确保它是私有的,以防止任何私有信息泄漏。
如果conf.yaml
的路径未通过-c/--配置传递给bot,
机器人将尝试在当前工作目录中找到它。
下面是conf.yaml
配置选项:
存储库名称
存储库所有者
github_令牌
github_用户名
github_标记
所属的帐户的名称。只需要在出现问题时触发bot。Github应用程序安装ID
Github应用程序ID
Github应用程序证书路径
刷新间隔
克隆URL
https
变量。在这个存储库中可以找到名为conf.yaml的配置示例。
关于github_token,通常最好为bot创建一个github帐户 (并使用其github api令牌) 因此,您可以跟踪bot所做的更改以及您自己的更改。
您还可以创建一个github应用程序,并将其用作
机器人。为此,您需要指定三个前缀为的配置值
Github_应用程序
注意:如果上游存储库是a私有github存储库,则需要指定ssh url
作为conf.yaml
中的克隆URL
选项。这将允许bot在从上游存储库提取数据时使用ssh进行身份验证。
上游储存库
您还必须在上游项目存储库的根目录中有一个release-conf.yaml
文件。
以下是可能的选项:
更改日志
$version release
作者姓名
作者电子邮件
pypi
pypi_项目
触发问题
是否允许bot根据问题生成prs。默认为False。 >
标签
名为release conf example.yaml rel="nofollow">release conf example.yaml的示例配置可以在这个存储库中找到。
要求
在requirements.txt中指定。
必须在
$home/.pypirc
中设置pypi登录详细信息,如中所述
pypi文档
Docker图像
为了更容易运行此程序,发行版bot作为 源到映像生成器映像。
然后您可以创建这样的最终图像:
$ s2i build $CONFIGURATION_REPOSITORY_URL usercont/release-bot app-name
其中$configuration_repository_url是指向包含conf.yaml和.pypirc文件的存储库的链接。
要在本地测试它,您可以运行这样的最终图像:
$ docker run <app-name>
一旦所有更改都存在于github中,git存储库包含所需的文件, 您可以尝试在github存储库中使用类似"x.y.z release"的字符串创建问题。 您可以看到这样的日志:
$ docker run meta-test-family-bot
---> Setting up ssh key...
Agent pid 12
Identity added: ./.ssh/id_rsa (./.ssh/id_rsa)
11:47:36.212 configuration.py DEBUG Loaded configuration for fedora-modularity/meta-test-family
11:47:36.212 releasebot.py INFO release-bot v0.4.1 reporting for duty!
11:47:36.212 github.py DEBUG Fetching release-conf.yaml
11:47:51.636 releasebot.py DEBUG No merged release PR found
11:47:52.196 releasebot.py INFO Found new release issue with version: 0.8.4
11:47:55.578 releasebot.py DEBUG No more open issues found
11:47:56.098 releasebot.py INFO Making a new PR for release of version 0.8.5 based on an issue.
11:47:57.608 utils.py DEBUG ['git', 'clone', 'https://github.com/fedora-modularity/meta-test-family.git', '.']
...
openshift模板
您还可以使用此存储库中的openshift template.yml在openshift中运行此bot。
必须设置两个环境变量,$app_name
是发布bot部署的名称,
以及$configuration_repository
其中包含版本bot的配置。
存储库的内容如上文所述。
注意,如果您使用私有存储库(您绝对应该使用私有存储库)。
您需要设置一个新的openshift secret命名
释放bot secret
进行身份验证。它可以是ssh私钥,您可以使用它来访问存储库
(有关github,请参见部署键)。
以下是关于
如何在openshift gui或其他
指南
使用oc
命令行工具。
默认情况下,当
此图像的新版本被推送到Docker Hub。
您可以通过取消注释importpolicy:
行来更改它。
以及在openshift template.yml中的scheduled:true。
然后图像将在新版本上被拉取。
架构用户存储库
对于基于Arch或Arch的Linux发行版,可以从aur包安装bot。 您可以使用您喜爱的aur助手来安装该软件包。例如:
$ aurman -S release-bot
您还可以使用pkgbuild。 要构建包,请下载pkgbuild并执行:
$ makepkg -cs #c flag cleans the extra remaining source and compiled files. s flag installs the dependencies if you don't have it.
要安装软件包,请执行,
$ sudo pacman -U release-bot-...tar.xz
贡献
如果您有兴趣为发布bot项目做出贡献,请阅读贡献指南了解更多信息。