drush และ jenkins ใช้ร่วมกันอย่างไรเพื่อบูรณาการอย่างต่อเนื่อง


30

ฉันได้ยินคำพูดฉวัดเฉวียน "บูรณาการอย่างต่อเนื่อง" "ดื่ม" และ "เจนกินส์" บ่อยครั้ง ดังนั้นจุดประกายความสนใจของฉัน

drush และ jenkins ใช้ร่วมกันอย่างไรเพื่อบูรณาการอย่างต่อเนื่อง

นอกจากนี้ทำไมคุณต้องการใช้ drush และ jenkins ด้วยกัน

คำตอบ:


20

สำหรับโครงการของฉันฉันใช้สคริปต์บิลด์ที่สร้างจากคำสั่ง Drush ในงานเจนกินส์ ฉันใช้โปรเจ็กต์Phing Drush Taskเพื่อเรียกใช้ Drush จากสคริปต์สร้างPhing สิ่งนี้ทำให้ฉันสามารถใช้ประโยชน์จากงาน Phing ที่มีอยู่ (เช่นการคัดลอกไฟล์, phplint, ฯลฯ ) ด้วยความช่วยเหลือของ Drush สคริปต์สร้างนี้

  • ดาวน์โหลดโค้ดที่ไม่ได้กำหนดเองทั้งหมด (เช่นโมดูลหลักของ Drupal และcontribsและธีม) ด้วยDrush Make to./dist
  • ขยายตัวยึดตำแหน่งในเวอร์ชันsettings.php(เช่นแทนที่${db_host}ด้วยชื่อโฮสต์ฐานข้อมูลจริง) ในขณะที่คัดลอกไปยัง./dist/sites/defaultโฟลเดอร์ที่ดาวน์โหลดใหม่
  • คัดลอกโมดูลและธีมที่กำหนดเองไปยัง./dist/sites/all/modules/customและ./dist/sites/all/themes/custom
  • เรียกใช้phplintสำหรับไฟล์ทั้งหมดจากโมดูลและธีมที่กำหนดเองของฉัน
  • คัดลอกทุกสิ่งภายใต้./distwebroot ที่กำหนดค่าไว้ล่วงหน้า
  • เรียกใช้drush site-install testingและdrush pm-enable simpletestเพื่อติดตั้งไซต์ใหม่โดยใช้รหัสการสร้างและสามารถเรียกใช้ SimpleTest
  • เรียกใช้drush test-runเพื่อเรียกใช้ชุดทดสอบโมดูลที่กำหนดเองของฉัน
  • drush coder-reviewวิ่ง

นี่คือเทมเพลต build.xml ที่มีความคิดเห็นสำหรับการใช้ Drush ใน Jenkins


นั่นหมายความว่าสภาพแวดล้อม CI ของคุณอยู่ในเครื่องเดียวกันกับเซิร์ฟเวอร์ php ของคุณหรือไม่? ฉันไม่เข้าใจวิธีที่คุณจัดการเพื่อคัดลอกแหล่งที่มาของคุณเองในไซต์ / all / modules / custom (ตัวอย่าง) อาจเป็นเพราะฉันไม่รู้วิธีทำงานของ drush ... แต่ไม่มีที่ไหนเลยที่ฉันเห็นงานเทียบเท่า scp / ftp จาก CI Plateform ของคุณเป็น Php one
Jean-Rémy Revy

1
ใช่เซิร์ฟเวอร์ CI และเว็บเซิร์ฟเวอร์ที่ให้บริการทดสอบอยู่ในเครื่องเดียวกัน นอกหลักสูตรคุณสามารถคัดลอกไฟล์จากพื้นที่ทำงาน CI ไปยังโฮสต์เว็บเซิร์ฟเวอร์ สามารถใช้คำสั่ง rsync ของ Drush ได้ จากนั้น Drush สามารถใช้เพื่อรันคำสั่งบนเครื่องที่โฮสต์เว็บเซิร์ฟเวอร์
Pierre Buyle

3

คุณสามารถใช้ Phing ใน Jenkins ได้ดังนั้นคุณสามารถใช้ Drush ผ่านhttp://drupal.org/project/phingdrushtask (Pierre Buyle บน SE.COM)

ตัวอย่างที่กำหนดเอง:

 <drush command='cc' root="${project.drupal.core.dir}" uri="${env.host.name}" assume="yes">
  <param>all</param>
</drush>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.