触发詹金斯工作的伪影名称

问题描述

詹金斯将通过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请求。

您可以在这里找到scripteddeclarative管道的相关文档。

您可以在此处找到scripteddeclarative管道的示例。