问题描述
詹金斯将通过Artifactory触发器开始工作(自由式)。 如何获得触发作业的文件的名称。这样我以后可以在同一工作中使用文件名(无需下载文件)?
解决方法
您可以通过执行一个简单的REST API来解决这个问题:
from peachpy import *
from peachpy.x86_64 import *
input = 0xc63a5be0
x = Argument(uint32_t)
with Function("DotProduct",(x,),uint32_t) as asm_function:
LOAD.ARGUMENT(edx,x) # EDX = 1b6fb67c
MOV(esi,0xffffffff)
with Loop() as loop:
TEST(esi,esi)
JZ(loop.end)
MOV(eax,esi)
SHL(eax,0x7)
AND(eax,0x9d2c5680)
XOR(eax,esi)
CMP(eax,edx)
JZ(loop.end)
SUB(esi,0x1)
JMP(loop.begin)
RETURN(esi)
#Read Assembler Return
abi = peachpy.x86_64.abi.detect()
encoded_function = asm_function.finalize(abi).encode()
python_function = encoded_function.load()
print(hex(python_function(input)))
响应:
GET https://<base-url>/artifactory/api/storage/<path>?lastModified
但是,使用此方法并不是100%准确,因为最后修改的工件可能与触发构建的工件不同。
有关更多信息,请参阅Artifactory REST API文档: https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-ItemLastModified
,更新: Jenkins Artifactory插件3.9.0已发布。在此版本上,构建原因的URL公开给管道使用-不需要额外的REST请求。
您可以在这里找到scripted和declarative管道的相关文档。
您可以在此处找到scripted和declarative管道的示例。