properties: Set Job Properties
เครื่องกำเนิดไฟฟ้าแรงไวยากรณ์ไม่ทำงานสำหรับขั้นตอนตัวอย่าง ฉันได้เลือกDiscard old builds
และป้อนข้อมูล10
ในMax # of builds to keep
ฟิลด์แล้วGenerate Groovy
และไม่มีอะไรปรากฏขึ้น
เจนกินส์เวอร์ชัน: 2.7.2
properties: Set Job Properties
เครื่องกำเนิดไฟฟ้าแรงไวยากรณ์ไม่ทำงานสำหรับขั้นตอนตัวอย่าง ฉันได้เลือกDiscard old builds
และป้อนข้อมูล10
ในMax # of builds to keep
ฟิลด์แล้วGenerate Groovy
และไม่มีอะไรปรากฏขึ้น
เจนกินส์เวอร์ชัน: 2.7.2
คำตอบ:
สำหรับไวยากรณ์ที่เปิดเผยคุณสามารถใช้options
บล็อก:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
พารามิเตอร์สำหรับlogRotator
(จากซอร์สโค้ด ):
daysToKeepStr
: ประวัติจะถูกเก็บไว้จนถึงทุกวันนี้numToKeepStr
: บันทึกการสร้างจำนวนนี้เท่านั้นที่จะถูกเก็บไว้artifactDaysToKeepStr
: สิ่งประดิษฐ์จะถูกเก็บไว้จนถึงทุกวันนี้artifactNumToKeepStr
: เฉพาะจำนวนการสร้างนี้เท่านั้นที่มีอาร์ติแฟกต์เก็บไว้ข้อมูลเพิ่มเติมสามารถพบได้ในฐานความรู้ CloudBeesและเอกสารสำหรับoptions
บล็อก
numToKeepStr
และโชคดีที่ฉันพบคำตอบของคุณที่นี่เพื่อค้นหาพารามิเตอร์อื่น ๆ เป็นระเบียบในการจัดทำเอกสารต่างๆ ขอบคุณแม้ว่าคุณจะเป็นผู้ช่วยชีวิต
คุณสามารถใช้properties
วิธีการซึ่งซ้อนอยู่BuildDiscarderProperty
ในคีย์ที่คุณต้องการตั้งค่าในที่สุด ฉันยังไม่มีวิธีที่มั่นคงในการค้นหาไวยากรณ์ที่ถูกต้องของแต่ละคีย์ หลังจากคาดเดาและตรวจสอบมาก:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
โปรดทราบว่าข้อมูลโค้ดนี้ใช้สำหรับไวยากรณ์แบบสคริปต์
*Str
ฟิลด์ในstrategy
. สอนผู้ชายตกปลา ... ฯลฯ
สำหรับ Scripted Pipelines ให้ใช้:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
หากต้องการยกเลิกการสร้างหลังจากผ่านไปหลายวัน :
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
หากต้องการยกเลิกการสร้างหลังจากจำนวนบิวด์ที่ระบุ :
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
คำตอบของ Vadim ไม่ได้ผลสำหรับฉันด้วยเหตุผลที่ไม่ทราบสาเหตุ ฉันทำให้มันง่ายขึ้นดังนี้และใช้งานได้ตอนนี้:
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
สำหรับไปป์ไลน์ที่เปิดเผยคุณสามารถเพิ่มสิ่งนี้:
options {
buildDiscarder(
logRotator(
// number of build logs to keep
numToKeepStr:'5',
// history to keep in days
daysToKeepStr: '15',
// artifacts are kept for days
artifactDaysToKeepStr: '15',
// number of builds have their artifacts kept
artifactNumToKeepStr: '5'
)
)
}
jenkins-base-url:port if any/pipeline-syntax/
ปกติผมทำมันได้จากที่นี่ ที่นี่ยังเป็นอีกหนึ่งjavadoc.jenkins.io/hudson/tasks/LogRotator.html ฉันยังดูซอร์สโค้ด github ของปลั๊กอินบางครั้งเพื่อทำความเข้าใจในรายละเอียด @silencej
หากคุณต้องการกำหนดค่าการเก็บรักษาบิลด์ในระดับงานไปป์ไลน์หลายสาขา (เทียบกับในแต่ละรายการJenkinsfile
) สิ่งนี้ก็เป็นไปได้เช่นกัน:
https://issues.jenkins-ci.org/browse/JENKINS-30519?focusedCommentId=325601&page=com .atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel # comment-325601
นอกจากนี้BuildRetentionBranchProperty
คุณสามารถกำหนดค่าอื่น ๆ*BranchProperty
ได้ที่นี่:
https://github.com/jenkinsci/branch-api-plugin/tree/master/src/main/java/jenkins/branch
พวกเขาอาจไม่ปรากฏใน GUI แต่อย่างน้อยสำหรับฉันกับ Jenkins 2.73.2 แต่คุณยังสามารถใช้ JobDSL หรือแก้ไขconfig.xml
ได้โดยตรง (ฉันไม่ได้พูดอย่างนั้นนะ ;-))
หากคุณต้องการวิธีทางโปรแกรม (เช่นการทำสิ่งนี้จากฟังก์ชันแทนที่จะใช้options{}
ไวยากรณ์ไปป์ไลน์):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}