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

คำถามเกี่ยวกับชุดปลั๊กอิน Jenkins“ Pipeline” (เดิมชื่อ“ Workflow”) ไม่เกี่ยวกับท่อใน Jenkins โดยทั่วไป (เช่นการใช้งานปลายน้ำ)

10
ข้อผิดพลาด“ อุปกรณ์อินพุตไม่ใช่ TTY”
Jenkinsfileผมใช้คำสั่งต่อไปจากฉัน แต่ผมได้รับข้อผิดพลาด"อุปกรณ์ป้อนข้อมูลไม่ได้เป็น TTY" docker run -v $PWD:/foobar -it cloudfoundry/cflinuxfs2 /foobar/script.sh มีวิธีเรียกใช้สคริปต์จากJenkinsfileโหมดไม่โต้ตอบหรือไม่? โดยทั่วไปฉันมีไฟล์ชื่อscript.shที่ฉันต้องการเรียกใช้ภายในคอนเทนเนอร์ Docker

7
ฉันจะรับเอาต์พุตของคำสั่งเชลล์ที่ดำเนินการโดยใช้เป็นตัวแปรจาก Jenkinsfile (groovy) ได้อย่างไร
ฉันมีสิ่งนี้ใน Jenkinsfile (Groovy) และฉันต้องการบันทึก stdout และรหัสทางออกในตัวแปรเพื่อใช้ข้อมูลในภายหลัง sh "ls -l" ฉันจะทำสิ่งนี้ได้อย่างไรโดยเฉพาะอย่างยิ่งเนื่องจากดูเหมือนว่าคุณไม่สามารถเรียกใช้โค้ด Groovy ใด ๆ ภายในJenkinsfile?

12
ฉันจะทดสอบการเปลี่ยนแปลงของ Jenkinsfile ในพื้นที่ได้อย่างไร
เมื่อเขียนไปป์ไลน์ของเจนกินส์ดูเหมือนว่าไม่สะดวกที่จะยอมรับการเปลี่ยนแปลงใหม่แต่ละครั้งเพื่อดูว่ามันทำงานได้หรือไม่ มีวิธีดำเนินการในพื้นที่โดยไม่ต้องใช้รหัสหรือไม่

4
สามารถเพิ่มความคิดเห็นในไฟล์เจนกินส์ได้หรือไม่?
ความคิดเห็นเป็นไปได้ใน Jenkinsfile? ถ้าใช่ไวยากรณ์คืออะไร ฉันใช้ไวยากรณ์ไปป์ไลน์ที่ประกาศได้ ฉันต้องการแสดงความคิดเห็นในส่วน "โพสต์" ด้านล่างจนกว่าเซิร์ฟเวอร์ SMTP ของฉันจะใช้งานได้ pipeline { agent { label 'docker-build-slave' } environment { IMAGE = 'registry.gitlab.com/XXXXX/bible-server' DOCKER_REGISTRY_CREDENTIALS = credentials('DOCKER_REGISTRY_CREDENTIALS') } options { timeout(10) } stages { stage('Test') { steps { sh 'yarn' sh 'npm test' } } stage('Build') { when { branch '*/master' } steps …

25
นักเทียบท่า: ได้รับอนุญาตถูกปฏิเสธในขณะที่พยายามเชื่อมต่อกับซ็อกเก็ต Docker daemon ที่ unix: ///var/run/docker.sock
ฉันใหม่สำหรับนักเทียบท่า ฉันแค่พยายามใช้นักเทียบท่าในเครื่องของฉัน (Ubuntu 16.04) กับเจนกิ้นส์ ฉันกำหนดค่างานใหม่ด้วยสคริปต์ขั้นต่ำ node { stage('Build') { docker.image('maven:3.3.3').inside { sh 'mvn --version' } } } แต่มันล้มเหลวด้วยข้อผิดพลาดด้านล่าง

5
ฉันจะทริกเกอร์งานอื่นจาก jenkins pipeline (jenkinsfile) ด้วย GitHub Org Plugin ได้อย่างไร
ฉันจะเรียกสร้างงานอื่นจากภายในได้Jenkinsfileอย่างไร ฉันคิดว่างานนี้เป็นที่เก็บอื่นภายใต้องค์กร githubเดียวกันซึ่งมีไฟล์ Jenkins ของตัวเองอยู่แล้ว ฉันต้องการทำเช่นนี้เฉพาะในกรณีที่ชื่อสาขาเป็นหลักเนื่องจากไม่สมเหตุสมผลที่จะเรียกใช้การสร้างดาวน์สตรีมของสาขาท้องถิ่นใด ๆ อัปเดต: stage 'test-downstream' node { def job = build job: 'some-downtream-job-name' } ถึงกระนั้นเมื่อดำเนินการฉันได้รับข้อผิดพลาด ไม่พบงานที่กำหนดพารามิเตอร์ชื่อ some-downtream-job-name ฉันแน่ใจว่างานนี้มีอยู่ในเจนกินส์และอยู่ในโฟลเดอร์องค์กรเดียวกันกับงานปัจจุบัน Jenkinsfileมันเป็นงานที่มีของตัวเองอีก โปรดทราบว่าคำถามนี้เป็นคำถามเฉพาะสำหรับGitHub Organization Pluginซึ่งสร้างและดูแลงานโดยอัตโนมัติสำหรับแต่ละที่เก็บและสาขาจากองค์กร GitHub ของคุณ

13
Jenkins Pipeline เช็ดพื้นที่ทำงานออก
เรากำลังเรียกใช้ Jenkins 2.x และชอบปลั๊กอินของ Pipeline ตัวใหม่ อย่างไรก็ตามด้วยสาขาจำนวนมากในพื้นที่เก็บข้อมูลพื้นที่ดิสก์จะเต็มเร็วขึ้น มีปลั๊กอินใดบ้างที่เข้ากันได้กับ Pipeline ที่ฉันสามารถลบพื้นที่ทำงานออกจากบิลด์ที่ประสบความสำเร็จได้หรือไม่?

1
เจนกินส์ไปป์ไลน์: ตัวแทน vs โหนด?
อะไรคือความแตกต่างระหว่างตัวแทนและโหนดในท่อเจนกินส์? ฉันพบคำจำกัดความเหล่านั้น: โหนด : งานส่วนใหญ่ที่ดำเนินการไปป์ไลน์จะทำในบริบทของขั้นตอนโหนดที่ประกาศอย่างน้อยหนึ่งขั้นตอน ตัวแทน : คำสั่งตัวแทนระบุตำแหน่งที่ไปป์ไลน์ทั้งหมดหรือสเตจเฉพาะจะดำเนินการในสภาพแวดล้อม Jenkins ขึ้นอยู่กับตำแหน่งที่วางคำสั่งเอเจนต์ ดังนั้นทั้งสองจึงใช้สำหรับดำเนินการขั้นตอนไปป์ไลน์ แต่จะใช้ตัวไหนเมื่อไหร่?

6
ชำระเงิน Jenkins Pipeline Git SCM พร้อมข้อมูลประจำตัวหรือไม่
ฉันทำตามบทช่วยสอนนี้ : node { git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git' ... } อย่างไรก็ตามไม่ได้บอกวิธีเพิ่มข้อมูลรับรอง Jenkins มีส่วน "ข้อมูลรับรอง" เฉพาะที่คุณกำหนด user user & pass จากนั้นรับ ID เพื่อใช้ในงาน แต่จะใช้ใน Pipeline อย่างไร? ฉันลองใช้: git([url: 'git@bitbucket.org:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455']) ไม่มีโชค: stderr: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the …

5
Jenkins: ไม่สามารถกำหนดตัวแปรในขั้นตอนไปป์ไลน์
ฉันกำลังพยายามสร้างสคริปต์ไปป์ไลน์แบบประกาศของเจนกินส์ แต่มีปัญหากับการประกาศตัวแปรอย่างง่าย นี่คือสคริปต์ของฉัน: pipeline { agent none stages { stage("first") { def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13." sh "echo ${foo}" } } } อย่างไรก็ตามฉันได้รับข้อผิดพลาดนี้: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 5: Expected a step @ line 5, column 13. def foo …

15
จะแสดงรายการคุณสมบัติ "env" ทั้งหมดภายในงานท่อเจนกินส์ได้อย่างไร
ด้วยการสร้างไปป์ไลน์เจนกินส์ 2.1 เจนกินส์จะฉีดenvตัวแปรเข้าไปในไฟล์node{}. ตัวอย่างเช่นBRANCH_NAMEสามารถเข้าถึงได้ด้วย node { echo ${env.BRANCH_NAME} ... ฉันต้องการสะท้อนคุณสมบัติทั้งหมด envภายในท่อเจนกินส์ ... เนื่องจากฉันไม่ทราบคุณสมบัติทั้งหมดล่วงหน้า ฉันกำลังมองหารหัสเช่น node { for(e in env){ echo e + " is " + ${e} } ... ซึ่งจะสะท้อนบางอย่างเช่น BRANCH_NAME is myBranch2 CHANGE_ID is 44 ...

4
Jenkins CI Pipeline Script ไม่อนุญาตให้ใช้เมธอด groovy.lang.GroovyObject
ฉันใช้ Jenkins 2 เพื่อรวบรวม Java Projects ฉันต้องการอ่านเวอร์ชันจาก pom.xml ฉันทำตามตัวอย่างนี้: https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md ตัวอย่างแนะนำ: ดูเหมือนว่าจะมีปัญหาด้านความปลอดภัยในการเข้าถึงระบบไฟล์ แต่ฉันไม่สามารถเข้าใจได้ว่ามันให้อะไร (หรือทำไม) ปัญหานั้น: ฉันแค่ทำแตกต่างจากตัวอย่างเล็กน้อย: def version() { String path = pwd(); def matcher = readFile("${path}/pom.xml") =~ '<version>(.+)</version>' return matcher ? matcher[0][1] : null } ข้อผิดพลาดที่ฉันได้รับเมื่อเรียกใช้เมธอด 'เวอร์ชัน': org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object (org.codehaus.groovy.runtime.GStringImpl …

7
ไปป์ไลน์ที่เขียนสคริปต์ของเจนกินส์หรือไปป์ไลน์ที่เปิดเผย
ฉันกำลังพยายามแปลงขั้นตอนการทำงานพื้นฐานของโครงการแบบเก่าเป็นไปป์ไลน์ตาม Jenkins ในขณะที่อ่านเอกสารฉันพบว่ามีไวยากรณ์สองแบบที่แตกต่างกันชื่อscriptedและdeclarative. เช่นการdeclarativeเปิดตัวไวยากรณ์ของเว็บ Jenkins เมื่อเร็ว ๆ นี้ (ปลายปี 2016) แม้ว่าจะมีการเปิดตัวไวยากรณ์ใหม่ Jenkins ก็ยังสนับสนุนไวยากรณ์แบบสคริปต์เช่นกัน ตอนนี้ฉันไม่แน่ใจว่าสถานการณ์ใดทั้งสองประเภทนี้จะเข้ากันได้ดีที่สุด ดังนั้นจะdeclarativeเป็นอนาคตของท่อเจนกินส์หรือไม่ ใครก็ตามที่สามารถแบ่งปันความคิดเห็นเกี่ยวกับไวยากรณ์ทั้งสองประเภทนี้

3
ขั้นตอน / ขั้นตอนตามเงื่อนไขในไปป์ไลน์ Jenkins
คุณจะรันขั้นตอน / ขั้นตอนการสร้างเฉพาะในกรณีที่สร้างสาขาเฉพาะได้อย่างไร ตัวอย่างเช่นเรียกใช้ขั้นตอนการปรับใช้เฉพาะเมื่อมีการเรียกสาขาdeploymentโดยปล่อยให้ทุกอย่างเหมือนเดิม

2
วิธีเพิ่มขั้นตอนการหมดเวลาให้กับ Jenkins Pipeline
เมื่อคุณใช้โปรเจ็กต์ฟรีสไตล์คุณสามารถตั้งค่าได้ว่าหลังจาก 20 นาทีบิลด์จะถูกยกเลิกหากไม่ได้ข้อสรุป สิ่งนี้เป็นไปได้อย่างไรกับโครงการไปป์ไลน์หลายสาขาของเจนกินส์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.