ดาวน์โหลดไฟล์จาก Jenkins build ที่มีเสถียรภาพล่าสุด


4

การใช้แบตช์ไฟล์และ wget / curl ฉันจะดาวน์โหลด Multiverse-Core-.jar จากที่นี่ได้อย่างไร http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/

ฉันต้องการใช้ตัวเลือกการประทับเวลาและลิงก์ "ไฟล์ทั้งหมดในไฟล์ซิป" ไม่ทำงานเนื่องจากไม่มีส่วนหัว "แก้ไขครั้งล่าสุด" หากฉันใช้http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/Multiverse-Core-2.5.jarตัวเลือกการประทับเวลาก็ใช้งานได้ แต่ฉันต้องการใช้ลิงค์แรก และไม่ต้องเปลี่ยนทุกครั้งที่มีการเปลี่ยนแปลงหมายเลขเวอร์ชั่น ฉันได้ลองแล้ว

wget -r -l 1 -nH -A jar -R *javadoc.jar,*sources.jar http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/

แต่มันเพิ่งสร้าง "job \ Multiverse-Core \ lastStableBuild \ifact \ target" ในไดเรกทอรีปัจจุบันโดยไม่มีไฟล์ สคริปต์ของฉันมีบางอย่างผิดปกติหรือไม่?

คำตอบ:


5

wgetเคารพrobots.txtไฟล์สำหรับการดาวน์โหลดซ้ำ และไฟล์นั้นห้ามทุกอย่าง (โดยไม่มีเหตุผลที่ดีสำหรับ AFAICT เนื่องจากBuild Nowจำเป็นต้องมีการPOSTแก้ไขใน Jenkins อย่างน้อยในเวอร์ชันล่าสุด)


เจนกินส์มี API วัตถุหลายรายการรวมถึงงานสร้างมีจุดสิ้นสุดของ API ในกรณีhttp://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/นี้

คุณสามารถสอบถามhttp://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xmlหรือhttp://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/jsonแยกวิเคราะห์ข้อความที่ส่งคืนสำหรับartifactsองค์ประกอบ treeอาร์กิวเมนต์ช่วยให้การกรองเหมือนเช่นในhttp://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?tree=artifacts%5BrelativePath%5D:

<freeStyleBuild>
<artifact>
<relativePath>target/Multiverse-Core-2.5-javadoc.jar</relativePath>
</artifact>
<artifact>
<relativePath>target/Multiverse-Core-2.5-sources.jar</relativePath>
</artifact>
<artifact>
<relativePath>target/Multiverse-Core-2.5.jar</relativePath>
</artifact>
</freeStyleBuild>

หรือใช้ XPath เพื่อการกรองที่มีประสิทธิภาพยิ่งขึ้น แต่โปรดทราบว่าในการอัปเดตความปลอดภัยล่าสุดการทำงานบางอย่าง (เช่นtext()) ถูกปิดใช้งาน ตัวอย่าง:http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?xpath=/freeStyleBuild/artifact/relativePath&wrapper=artifacts

จากบรรทัดคำสั่งคุณสามารถแยกวิเคราะห์ XML เช่นใช้รุ่นล่าสุดxmllintหรือในตัวอย่าง Xpath เพียงละเว้นข้อความและเลือกชื่อไฟล์


คุณสามารถแสดงให้ฉันดูว่าฉันใช้สิ่งนี้เพื่อรับ curl / wget เพื่อดาวน์โหลดเฉพาะ Multiverse-Core.jar ในชุดสคริปต์ได้อย่างไร ฉันกำลังใช้ Windows 7 ถ้าเป็นเช่นนั้น
Craft1n3ss

@ Craft1n3ss ฉันไม่รู้ชุดงานเพียงพอ
Daniel Beck

ขอบคุณสำหรับข้อมูลอยู่ดี ฉันอาจทำเองถ้าฉันค้นหารอบ ๆ หรือถามคำถามอื่น ฉันจะให้ upvote แต่ฉันไม่มีชื่อเสียงมากพอ (นี่เป็นคำถามแรกของฉัน)
Craft1n3ss

1
เข้าใจแล้ว! ใช้FOR /F "tokens=14 delims=<>" %%a IN ('curl -g "http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?tree=artifacts[fileName]"') DO ECHO %%aจะสะท้อนชื่อที่แน่นอนของไฟล์ที่ฉันต้องการ ขอบคุณสำหรับความช่วยเหลือ
Craft1n3ss
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.