Я більшу частину свого часу я самотній розробник, працюючи над низкою великих, в основному, проектів на базі PHP. Я хочу професіоналізувати та автоматизувати, як обробляються зміни в кодовій базі, і створити процес безперервної інтеграції, який робить можливим перехід до роботи в команді без необхідності кардинальних змін.
Що я зараз роблю, це те, що я маю місцеве тестове середовище для кожного проекту; Я використовую SVN для кожного проекту; зміни тестуються локально, а потім переносяться в он-лайн версію, як правило, через FTP. Документація API генерується вручну з вихідного коду; Одиничні тести - це те, до чого я потрапляю повільно, і це ще не є частиною мого розпорядку дня.
Я передбачаю, що цикл "побудови" виконає наступне:
Набір змін перевіряється у SVN після тестування на місцях.
Я запускаю процес збирання. Версія SVN HEAD перевіряється, при необхідності змінюється та готується до завантаження.
Документація API генерується автоматично - якщо я ще не налаштував її детально, використовуючи шаблон за замовчуванням, скануючи всю базу коду.
Нова редакція розміщена у віддаленому місці за допомогою FTP (включаючи перейменування каталогів, chmodding, імпорт баз даних тощо). Це те, що я вже дуже люблю phing , але я відкритий для альтернатив, звичайно.
Проводяться одиничні випробування, що знаходяться у заздалегідь визначеному місці. Мені інформують про їхній збій або успіх за допомогою електронних повідомлень електронної пошти, RSS або (бажано) виводу HTML, які я можу захопити та розмістити на веб-сторінці.
(необов'язково) текстовий файл "змін журналу" кінцевого користувача у заздалегідь визначеному місці оновлюється заздалегідь визначеною частиною повідомлення про фіксацію ("Тепер можна фільтрувати і" foo ", і" bar "одночасно час). Це повідомлення не обов'язково тотожне повідомленням фіксації SVN, яке, ймовірно, містить значно більше внутрішньої інформації.
Такі речі, як метрика коду, перевірка стилю коду тощо, зараз не є моєю основною увагою, але в довгостроковій перспективі вони, безумовно, будуть. Рішення, які приносять цей нестандартний комплект, дуже доброзичливо розглядаються.
Шукаю
Відгуки та досвід людей, які опинилися або опинилися в подібній ситуації, і успішно реалізували рішення для цього
Особливо, хороші покрокові підручники та посібники, як це налаштувати
Рішення, що забезпечують максимальну автоматизацію , наприклад, створення API скелетів, тестові кейси тощо для кожного нового проекту.
і також
- Рекомендації по вибору . Я знаю поки що phing / ant for building та phpUnderControl або Hudson для звітної частини. Мені подобаються всі вони, наскільки я бачу, але я, звичайно, не маю детального досвіду з ними.
Я завалений роботою, тому маю сильну схильність до простих рішень. З іншого боку, якщо функція відсутня, я буду плакати за її занадто обмеженість. :) Точкові та клікні рішення також вітаються. Я також до рекомендацій щодо комерційних продуктів, які можуть працювати з проектами PHP.
Моя установка
Я працюю над Windows локально (точніше 7), і більшість клієнтських проектів виконуються на стеку LAMP, часто на спільному хостингу (= відсутність віддаленого SSH). Я шукаю рішення, які можу запустити у власному середовищі. Я готовий створити для цього Linux VM, без проблем. Розміщені рішення для мене цікаві лише в тому випадку, якщо вони містять усі описані аспекти або є досить гнучкими для взаємодії з іншими частинами процесу.
Баунті Я приймаю відповідь, який, як мені здається, дасть мені найбільший пробіг. Тут є багато відмінних даних, я б хотів прийняти більше, ніж одну відповідь. Дякую всім!