ฉันเป็นนักพัฒนาคนเดียวที่ใช้เวลาส่วนใหญ่ทำงานกับโปรเจคใหญ่ ๆ ที่ใช้ PHP เป็นหลัก ฉันต้องการทำให้เป็นมืออาชีพโดยอัตโนมัติและจัดการการเปลี่ยนแปลงของรหัสฐานและสร้างกระบวนการบูรณาการอย่างต่อเนื่องที่ทำให้การเปลี่ยนแปลงในการทำงานเป็นทีมเป็นไปได้โดยไม่ต้องทำการเปลี่ยนแปลงพื้นฐาน
สิ่งที่ฉันทำตอนนี้คือฉันมีสภาพแวดล้อมการทดสอบในท้องถิ่นสำหรับทุกโครงการ ฉันใช้ SVN สำหรับแต่ละโครงการ การเปลี่ยนแปลงจะถูกทดสอบภายในเครื่องจากนั้นโอนไปยังเวอร์ชันออนไลน์โดยปกติผ่าน FTP เอกสาร API ถูกสร้างขึ้นด้วยตนเองจากซอร์สโค้ด การทดสอบหน่วยเป็นสิ่งที่ฉันกำลังเข้าสู่ช้าและยังไม่ได้เป็นส่วนหนึ่งของกิจวัตรประจำวันของฉัน
"วงจรการสร้าง" ฉันจินตนาการว่าจะทำสิ่งต่อไปนี้:
เซ็ตการแก้ไขจะถูกตรวจสอบใน SVN หลังจากผ่านการทดสอบในเครื่องแล้ว
ฉันเริ่มกระบวนการสร้าง การแก้ไข SVN HEAD ได้รับการตรวจสอบแก้ไขหากจำเป็นและพร้อมสำหรับการอัปโหลด
เอกสาร API ได้รับการสร้างขึ้นโดยอัตโนมัติ - หากฉันยังไม่ได้ตั้งรายละเอียดโดยใช้เทมเพลตเริ่มต้นให้สแกนฐานรหัสทั้งหมด
การแก้ไขใหม่ถูกปรับใช้กับตำแหน่งระยะไกลผ่าน FTP (รวมถึงการเปลี่ยนชื่อไดเรกทอรีบางส่วน chmodding การนำเข้าฐานข้อมูลและไลค์) นี่เป็นสิ่งที่ฉันชอบphingมาก แต่ฉันเปิดรับทางเลือกแน่นอน
การทดสอบหน่วยที่อยู่ในสถานที่ที่กำหนดไว้ล่วงหน้าจะถูกเรียกใช้ ฉันได้รับแจ้งเกี่ยวกับความล้มเหลวหรือความสำเร็จของพวกเขาโดยใช้ E-Mail, RSS หรือ (ควร) เอาท์พุท HTML ที่ฉันสามารถคว้าและใส่ลงในหน้าเว็บ
(เป็นทางเลือก) ไฟล์ข้อความ "changelog" ผู้ใช้ปลายทางในตำแหน่งที่กำหนดไว้ล่วงหน้าจะได้รับการอัปเดตด้วยส่วนที่กำหนดไว้ล่วงหน้าของข้อความยืนยัน ("ตอนนี้สามารถกรองทั้ง" foo "และ" bar "ได้ในเวลาเดียวกัน เวลา) ข้อความนี้ไม่จำเป็นต้องเหมือนกับข้อความยืนยัน SVN ซึ่งอาจมีข้อมูลภายในมากขึ้น
สิ่งต่าง ๆ เช่นตัวชี้วัดโค้ดการตรวจสอบสไตล์โค้ดและอื่น ๆ ไม่ใช่จุดสนใจหลักของฉันในตอนนี้ แต่ในระยะยาวพวกเขาจะต้องแน่นอน วิธีแก้ปัญหาที่นำสิ่งนี้ออกนอกกรอบนั้นเป็นสิ่งที่ได้รับความสนใจเป็นอย่างมาก
ฉันกำลังมองหา
คำติชมและประสบการณ์จากคนที่อยู่หรืออยู่ในสถานการณ์ที่คล้ายกันและประสบความสำเร็จในการดำเนินการแก้ไขปัญหานี้
โดยเฉพาะอย่างยิ่งการสอนทีละขั้นตอนที่ดีและคำแนะนำในการตั้งค่านี้
โซลูชันที่ให้การทำงานอัตโนมัติมากที่สุดเท่าที่จะเป็นไปได้ตัวอย่างเช่นโดยการสร้าง Skeleton API กรณีทดสอบและอื่น ๆ สำหรับแต่ละโครงการใหม่
และนอกจากนี้ยังมี
- แนะนำผลิตภัณฑ์ สิ่งที่ฉันรู้คือphing / ant สำหรับการสร้างและphpUnderControlหรือHudsonสำหรับส่วนการรายงาน ฉันชอบพวกเขาทั้งหมดเท่าที่ฉันจะเห็น แต่แน่นอนว่าฉันไม่มีประสบการณ์โดยละเอียดกับพวกเขา
ฉันล้นมือกับการทำงานดังนั้นฉันจึงมีแนวโน้มที่จะมุ่งเน้นไปที่โซลูชันที่เรียบง่าย ในทางกลับกันหากคุณสมบัติหายไปฉันจะร้องไห้เกี่ยวกับคุณลักษณะที่ จำกัด เกินไป :) ยินดีต้อนรับโซลูชันแบบจุดและคลิกด้วยเช่นกัน ฉันยังแนะนำผลิตภัณฑ์เชิงพาณิชย์ที่สามารถทำงานกับโครงการ PHP ได้
การตั้งค่าของฉัน
ฉันกำลังทำงานบน Windows ในพื้นที่ (7 เป็นที่แน่นอน) และโครงการไคลเอนต์ส่วนใหญ่จะทำงานใน LAMP stack ซึ่งมักจะเป็นพื้นที่สาธารณะที่ใช้ร่วมกัน (= ไม่มี SSH ระยะไกล) ฉันกำลังมองหาวิธีแก้ไขปัญหาที่ฉันสามารถเรียกใช้ในสภาพแวดล้อมของฉันเอง ฉันพร้อมที่จะตั้งค่า Linux VM สำหรับสิ่งนี้แล้วไม่มีปัญหา โซลูชันโฮสต์นั้นน่าสนใจสำหรับฉันหากพวกเขามีทุกด้านที่อธิบายไว้หรือมีความยืดหยุ่นเพียงพอที่จะโต้ตอบกับส่วนอื่น ๆ ของกระบวนการ
เงินรางวัล ฉันยอมรับคำตอบที่ฉันรู้สึกว่าจะให้ระยะทางมากที่สุด มีอินพุตที่ยอดเยี่ยมมากมายที่นี่ฉันหวังว่าฉันจะยอมรับมากกว่าหนึ่งคำตอบ ขอบคุณทุกคน!