首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式检测我的启动板构建过程已经完成?

如何以编程方式检测我的启动板构建过程已经完成?
EN

Ask Ubuntu用户
提问于 2021-05-16 18:43:10
回答 1查看 157关注 0票数 3

我正在开发抓紧!C++项目,它管理具有复杂依赖关系集的许多包(见下图)。

因此,在运行软件包B之前,我需要包A的构建才能完成。我想至少半自动地完成构建过程,为此我需要知道,通过编程,包A已经完成了构建。然后,我可以验证构建是否有效(我知道如何做),如果是这样的话,我可以发送包B的源代码并启动该构建。

我找到了关于启动器API的页面,并下载了他们提供的用于访问服务器的python脚本。但是,我不太擅长python,也不太确定我需要使用什么样的API调用。我找到了这一大页,我假设所有的调用都是这样,但我无法找到一个简单的例子,说明如何获得特定项目的当前构建状态。也许是getBuildQueueSizes?但是,查看launchpadlib Python项目文件,我在代码中找不到任何这样的名称。所以我不太确定那是怎么回事。

你会有至少能做到这一点的示例代码与我们共享吗?或者是在Launchpad.net网站上有一个例子的地方?

在这一点上,我的剧本连接..。接下来我该怎么办?

代码语言:javascript
复制
# See API here
# https://launchpad.net/+apidoc/devel.html

from launchpadlib.launchpad import Launchpad
from os.path import expanduser

home = expanduser('~')
cachedir = home + '/.launchpadlib/cache/'
launchpad = Launchpad.login_anonymously('snapcpp', 'production', cachedir, version='devel')

如果可能的话,只要一个URI就好了。从这里和那里可以看到,只需向URI发出一个HTTP就可以得到一个GET,并提供所有必要的信息。我看不出那个URI是什么。我试了几次从我在文档中看到的(用超重的例子.)):

代码语言:javascript
复制
https://api.launchpad.net/devel/snapcpp?ws.op=getBuildRecords&source_name=libtld

这个命令告诉我,getBuildRecords不是命令。然而,在大多数情况下,我得到了400或404。项目URL工作,但是JSON中显示的所有链接都没有帮助:

代码语言:javascript
复制
https://api.launchpad.net/devel/snapcpp

通过更多的测试,我发现我可以用以下方法搜索一些构建:

代码语言:javascript
复制
https://api.launchpad.net/devel/ubuntu/bionic?ws.op=getBuildRecords&source_name=lib

但是,如果我尝试使用我的项目名称作为source_name=...参数(a.k.a )。"libtld“或"snapcpp"),则返回空列表。最后一个URL也只适用于/ubuntu?...或架构/ubuntu/bionic/amd64?...。但这没什么用。

我想这可能是一个窃听器所以我报告了洗衣板

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-06-06 11:59:04

launchpadlib是底层Launchpad API上的一个相对较薄的层,实际操作是在启动板中实现的。因此,通过查看launchpadlib的S源代码,您通常不会发现任何提及个别API方法的地方。

这里的问题是,您询问的是关于/snapcpp的Launchpad问题(就Launchpad而言,该项目与您的PPA没有正式的关联),或者是关于/ubuntu/bionic ( Ubuntu系列,它只告诉您官方操作系统中的构建),而不是您的PPA。正确的URL是:

代码语言:javascript
复制
https://api.launchpad.net/devel/~snapcpp/+archive/ubuntu/ppa?ws.op=getBuildRecords&source_name=libtld

或者在launchpadlib-based代码中,如下所示:

代码语言:javascript
复制
archive = launchpad.load('/~snapcpp/+archive/ubuntu/ppa')
for build in archive.getBuildRecords(source_name='libtld'):
    # do something with each build in turn
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1338731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档