所以这个问题是关于stackoverflow的另一个问题的跟进- How to upload file from command line as file parameter in jenkins
是否有一种方法可以让作业等待文件上传完成?在我的情况下,我在jenkins作业中有一些命令行参数,它将文件输入作为参数。现在我可以成功完成任务,但是在上传文件之前,任务将继续执行命令行参数,这将导致任务失败,因为它们需要文件可用。
我的问题再次出现-有没有办法使我可以在执行cmd参数之前让作业等待上载完成?我是通过java和RestAssured lib来做到这一点的。
编辑:
RestAssured.given()
.auth().basic("USERNAME", "PASSWORD")
// .contentType(ContentType.URLENC)
.when()
.post("https://JENKINS_HOST/hudson/job/RISTSA/job/JOB_NAME/buildWithParameters" + "?file=C:/PATH_TO_FILE/SOMETHING.json&JenkinsStringParamName=test")
.then()
.statusCode(201);
//已经尝试在查询参数中使用file0,JenkinsFileParamName
RestAssured.given().log().all()
.contentType(ContentType.URLENC)
.auth().basic("USERNAME", "PASSWORD")
// .headers(httpHeaders("USERNAME", "PASSWORD"))
.formParam("file0", "C:/PATH_TO_FILE/SOMETHING.json")
.formParam("json", "{\"parameter\":[{\"name\":\"JenkinsFileParamName\",\"file\":\"file0\"},{\"name\":\JenkinsStringParamName\",\"value\":\"test\"}]}")
.when()
.post("https://JENKINS_HOST/hudson/job/RISTSA/job/JOB_NAME/buildWithParameters")
.then()
.statusCode(201);
现在我尝试了以下方法-
根据jenkins docs上提供的官方curl参考创建第二种方法
答案 0 :(得分:0)
由于您已经在卷曲文件,所以为什么不继续:)
以下代码将连续检查文件是否存在。
until $(curl --output /dev/null --silent --head --fail http://website.url/directory/fileExists.txt); do
printf '.'
sleep 5
done;
文件存在后,它将打破循环并继续您的jenkins构建。
希望对您有所帮助:)