Eine meiner Rollen in meinem Team ist die Build-Person . Ich bin dafür verantwortlich, unsere Build-Skripte zu pflegen / zu aktualisieren und sicherzustellen, dass wir auf dem Continuous Integration Server reibungslos aufbauen. Normalerweise stört mich dieser Job nicht, obwohl ich mich oft fühle, als würde ich ständig auf dem CI-Server babysitten.
Dieser Job kann manchmal ärgerlich sein, denn wenn der Build abbricht, muss ich die Story, an der ich arbeite, fallen lassen und den Build-Fehler untersuchen. Build-Fehler passieren täglich in unserem Team. Manchmal erstellen Entwickler einfach nicht lokal, bevor sie einen Commit ausführen, sodass Tests auf dem CI-Server fehlschlagen. In dieser Situation möchte ich schnell zu der Person gelangen, die das "Bad Commit" hatte, damit der Build nicht zu lange unterbrochen bleibt. Manchmal (viel seltener) liegt auf dem CI-Server ein seltsamer Zustand vor, der behoben werden muss.
Ich weiß, dass viele ausgereifte Teams Continuous Integration einsetzen, aber es gibt nicht viel Material zu guten Praktiken.
Zeigen meine Probleme, dass unsere kontinuierliche Integration nicht sehr ausgereift ist oder gehört dies einfach zum Job?
Welche guten Praktiken sollten befolgt werden? Was zeichnet eine ausgereifte kontinuierliche Integration aus ?
Aktualisieren
Anstatt ein paar Kommentare zu beantworten, werde ich stattdessen ein Update machen. Wir haben einen einzigen, einfachen Befehl, der genau das tut, was der Build-Server beim Erstellen der App tut. Es wird kompiliert, alle Unit / Integration und einige schnelle UI-basierte Tests ausgeführt.
Wenn man die Antworten aller liest, hat man das Gefühl, dass wir zwei große Probleme haben könnten.
- Der CI-Server beschwert sich nicht laut genug, wenn ein Build fehlschlägt.
- Entwickler fühlen sich nicht dafür verantwortlich, dass ihr Commit erfolgreich durchgeführt wird.
Was die Dinge in meinem Team schwieriger macht, ist, dass wir ein großes Team haben (über 10 Entwickler) UND ein paar Offshore-Teammitglieder, die sich verpflichten, wenn wir nicht einmal bei der Arbeit sind. Da das Team groß ist und wir festgestellt haben, dass häufige, kleine Einsätze bevorzugt werden, haben wir manchmal wirklich viel Aktivität an einem Tag.