คำถามติดแท็ก jenkins-pipeline

4
วิธีที่สะอาดที่สุดในการออกจากงาน Jenkins Pipeline ก่อนกำหนดเป็นความสำเร็จหรือไม่?
ฉันมีงานที่จะสร้างไฟล์ยกเว้นหนึ่งในค่าที่ถูกป้อนเข้ากับค่าที่เก่ากว่า อะไรคือวิธีที่สะอาดที่สุดในเจนกินส์ในการยกเลิกหรือออกจากงานโดยที่ไม่เป็นFAILED? SUCCESSมันออกเป็นพฤติกรรมที่ถูกต้องดังนั้นฉันต้องการสร้างที่มีเครื่องหมาย มันจะจบลงด้วยคำสั่ง if หากเป็นเช่นนั้น stage ('Check value') { if( $VALUE1 == $VALUE2 ) { //if they do match exit as a success, else continue with the rest of the job } } ฉันไม่ต้องการที่จะโยนรหัสข้อผิดพลาดเว้นแต่ว่าอย่างใดสามารถแปลเป็นถูกทำเครื่องหมายงานสร้างที่ประสบความสำเร็จ

2
วิธีการสร้างท่อส่งเจนกินส์ขนานที่ซับซ้อนได้อย่างไร
ฉันมีความสนใจในการแปลงเจนเนอร์ส bespoke ของเราเป็นท่อ อย่างไรก็ตามฉันไม่สามารถหาวิธีที่จะทำได้ ใครสามารถช่วยฉันด้วยสคริปต์เจนกินส์ที่สามารถทำต่อไปนี้? 1---2---3-----------9---10 | | |---4-------| | | |---5---6---| | | |---7---| 1: Start pipeline 10: End pipeline 5: Build some files * needed by 6, 7, * needed as artifacts at the end 2, 3, 4, 6, 7: Have jUnit result files, should be available at …

1
เรียกใช้กระบวนการพื้นหลังในงานไปป์ไลน์
ฉันกำลังมองหาวิธีเรียกใช้กระบวนการ Java ในพื้นหลังโดยใช้ขั้นตอนการประกาศ Jenkins ด้านล่างนี้เป็นตัวอย่างรหัส stage('Deploy'){ steps{ script{ withEnv(['BUILD_ID=dontkill']) { sh "nohup java -jar test-0.0.1-SNAPSHOT.war &" } } } } ทราบอยู่แล้วว่า ProcessTreeKiller ของ Jenkins และทุกคำตอบแนะนำให้ทำเช่นเดียวกัน ฉันได้ลองใช้สภาพแวดล้อมภายในขั้นตอนบล็อกโดยไม่มีโชค เวอร์ชั่นของ Jenkins: 2.60.1 ปลั๊กอินไปป์ไลน์: 1.1.7 ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

3
ใช้ปลั๊กอิน Artifactory ในไปป์ไลน์ของ Jenkins
ฉันใช้ Jenkins Declarative Pipeline เพื่อสร้างกระบวนการสร้างของฉันโดยอัตโนมัติ เราต้องการเผยแพร่สิ่งประดิษฐ์ของเราไปยังที่เก็บ JFrog ระยะไกลเฉพาะเมื่อผ่านเงื่อนไขบางอย่าง (Sonar, Checkmarx) หลังจากการวิจัยเล็กน้อยฉันพบว่าปลั๊กอิน Artifactory มีประโยชน์สำหรับสิ่งนี้ แต่ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับวิธีการรวมในขั้นตอนการประกาศ ด้านล่างนี้เป็นข้อมูลโค้ดจาก Jenkinsfile stages{ stage('Pre-Build'){ steps{ script{ def server = Artifactory.server 'LocalJfrog' def rtGradle = Artifactory.newGradleBuild() rtGradle.resolver server: server, repo: 'gradle-dev-local' rtGradle.deployer server: server, repo: 'gradle-release-local' rtGradle.useWrapper = true } } } } การเผยแพร่แบบมีเงื่อนไขไม่สามารถทำได้ด้วยรหัสด้านบนเนื่องจากฉันไม่สามารถใช้ตัวแปรเซิร์ฟเวอร์ซ้ำได้แม้ว่าฉันจะปิดการใช้งานการเผยแพร่อัตโนมัติ

3
Jenkins: ปัญหาการอนุญาตให้ใช้ Docker เป็นสภาพแวดล้อมการสร้าง
ฉันติดตั้ง Jenkins บนเครื่อง Ubuntu 16.04 เจนกินส์ตัวเองไม่ได้ทำงานในภาชนะ สิ่งที่ฉันต้องการจะทำก็แค่โทรหาyarn installโดยใช้อิมเมจโหนด ดังนั้นนี่คือ Jenkinsfile ของฉัน: pipeline { agent any stages { stage('install node modules...') { agent { docker 'node' } steps { sh 'cd /path/to/package.json; yarn install' } } } } ตรงไปตรงมาสวยใช่มั้ย เจนกินส์ผู้ใช้ / กลุ่ม112:116และ uid ของภาชนะโหนดคือ1000เพราะฉะนั้นกระบวนการเส้นด้าย (ซึ่งทำงานเป็นผู้ใช้โหนด 1000) mkdir /.configไม่สามารถทำในสิ่งที่ตนชอบ ฉันพยายามหมุนโหนดคอนเทนเนอร์ที่ผ่านการโต้เถียง-u 1000มันชนกับปัญหาสิทธิ์เมื่อพยายามสร้างไดเรกทอรีที่ทนทาน ดูเหมือนว่าเป็นปัญหาประเภทหนึ่งหรือประเภทอื่นฉันจะแก้ไขได้อย่างไร …

1
งานไปป์ไลน์ของเจนกินส์; การอ้างอิงที่เหมาะสมสำหรับขั้นตอน slackSend
นี่อาจเป็นข้อผิดพลาดของผู้ใช้ 100% แต่ฉันไม่สามารถรับงานไปป์ไลน์เพื่อใช้ตัวแปรเป็นชื่อช่องในขั้นตอน slackSend นี้ใช้ทั้งปลั๊กอินหย่อนและรูปร่างของผู้ใช้ Vars ปลั๊กอิน ฉันกำลังพยายามที่จะใช้BUILD_USER_FIRST_NAMEเพื่อระบุช่องทางที่จะหย่อนกลับไปที่ (เช่นคนที่เริ่มต้นการสร้างควรเป็นคนที่จะได้รับข้อความ) มีครึ่งหนึ่งของบทความนี้เกี่ยวกับวิธีใช้ปลั๊กอินผู้ใช้บิลด์ในงานไปป์ไลน์ แต่การแทนที่ตัวแปรกำลังทำให้ฉันสะดุด ส่วนที่เกี่ยวข้องของงานจะเป็นดังนี้ stage ('message') { wrap([$class: 'BuildUser']) { sh "printf '%s' ${BUILD_USER_FIRST_NAME} > name.txt" } archiveArtifacts artifacts: 'name.txt' name = readFile('name.txt') echo "name is $name" //works fine, I get Alex if ( "$output" != null ) { slackSend (channel: '@$name', …

2
รับบันทึกการเปลี่ยนแปลงทั้งหมดตั้งแต่สร้างสำเร็จครั้งสุดท้ายใน Jenkins Pipeline
ในท่อส่งเจนกินส์ของฉันฉันจะได้รับบันทึกการเปลี่ยนแปลงของการสร้างปัจจุบันโดยสิ่งนี้ def changeLogSets = currentBuild.changeSets มีวิธีรับบันทึกการเปลี่ยนแปลงทั้งหมดหรือไม่ตั้งแต่สร้างสำเร็จครั้งล่าสุด

2
จะปิดการใช้งานบางสาขาใน Multibranch Jenkins Builds ได้อย่างไร
ฉันมีงานหลายสาขาตั้งค่าให้ทำงานสาขาใด ๆ กับ Jenkinsfile ฉันมีตัวเลือกบางอย่างที่ฉันสามารถนึกได้ว่าถ้าฉันต้องการลบสาขาออกจากรายการงานที่กำลังทำงานสำหรับไปป์ไลน์แบบหลายสาขา ฉันสามารถลบสาขา ฉันสามารถลบเจนกินส์ไฟล์ในสาขานั้นได้ วิธีที่สองนั้นดียกเว้นฉันต้องยอมรับและผลักดันมันไปที่ repo git สำหรับสาขาของฉันและถ้าสาขานั้นถูกรวมเข้ากับสาขาอื่นมันจะทำให้ Jenkinsfile หายไป วิธีที่ดีที่สุดในการปิดการใช้งานท่อส่งหลายสาขาเพียงบางสาขาคืออะไร?

1
ฉันจะทริกเกอร์สคริปต์ในการรวมหรือเมื่อสาขาถูกลบได้อย่างไร
ฉันใช้ท่อหลายคู่เจนกิ้นส์ หากมีการรวมสาขาและลบเจนกินส์จะลบสาขาออกจากท่อเช่นกัน นี่ยอดเยี่ยม แต่ฉันต้องการเรียกใช้คำสั่ง / สคริปต์เมื่อมีการลบสาขาฉันจะให้ jenkins เรียกใช้คำสั่งเมื่อลบสาขาได้อย่างไร มีวิธีที่จะให้เจนกินส์สั่งงานก่อนที่จะถอนสาขาหรือไม่? แก้ไข: ฉันควรเพิ่มฉันใช้ bitbucket มันจะเรียบร้อยถ้าเจนกินส์สามารถก่อให้เกิดเหตุการณ์เมื่อล้างสาขาของท่อส่งหลายสาขา เป็นการดีที่จะไม่สำคัญว่าผู้ให้บริการคอมไพล์ของฉันคืออะไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.