All posts by Micha Kops

Stash in der Praxis – Branches schützen leicht gemacht

Bei der Arbeit in einem Git-basierten Software-Projekt ergeben sich einige Risiken, die den Entwicklungsprozess, die Software-Qualität und die Stabilität gegebenenfalls bestehender Abläufe behindern können. Auf der anderen Seite möchte man den Entwicklungsprozess auch nicht durch zu restriktive Modelle ausbremsen. Gut, dass Stash, das Git-Repository-Managementsystem von Atlassian, ein granulares, fein justierbares Sicherheitskonzept mitbringt. Hier sind ein paar pragmatische Schritte, wie sich Git-Branches in Stash schützen lassen.

Git in der Praxis: Mit Fixup und Autosquash die Historie sauber halten

Im Arbeitsalltag eines Entwicklers geschieht es auch in Git-verwalteten Projekten häufig, dass sich die Commit-Historie in einem Branch mit Korrektur-Commits füllt, die mit Etiketten wie „Typo korrigiert“, „Kommentar entfernt“ usw. versehen sind. Um diese Historie nun sauber halten zu können, bietet uns Git (wie so oft) unterschiedliche Möglichkeiten an, von denen ich hier eine spezielle Kombination vorstellen möchte: git commit –fixup und git rebase -i –autosquash.

Behaviour Driven Development und Bamboo: Visualisierung von Cucumber-Szenarien

Verhaltensgetriebene Entwicklung (Behaviour Driven Development, BDD) setzt sich zum Ziel, in Software-Projekten die beteiligten Akteure von Stakeholdern bis zum Entwickler zusammenzubringen und funktionale Anforderungen in einer einfachen, verständlichen und normierten Sprache zu dokumentieren. Ein häufig verwendetes Tool, das als Bindeglied zwischen textueller Anforderungsbeschreibung und konkretem Software-Test dient, ist Cucumber. In diesem Tutorial demonstrieren wie, wie Cucumber-Szenarien auf einem Bamboo-Server ausgeführt und wie Testergebnisse visualisiert werden können.

Continuous Delivery in der Praxis: Deployment auf Knopfdruck und Release-Verwaltung mit Bamboo

Continuous Delivery macht es sich zum Ziel, durch hochgradige Automatisierung Entwicklungskosten zu senken, Deployment-Vorgänge zu beschleunigen, die Qualität der Prozesse zur erhöhen und so auch flexibler und frühzeitiger auf Kundenanforderungen eingehen zu können. Wie sich dies in der Praxis gestaltet, ist Gegenstand dieses Artikels: Wir werden Atlassians CI-Server Bamboo konfigurieren, um eine einfache Java-Web-Anwendung auf einem Tomcat-Anwendungsserver per Knopfdruck zu installieren.

Code-Reviews mit Stash und SonarQube

Code-Reviews bilden ein wichtiges Werkzeug im Prozess der Software-Entwicklung, um eine bestmögliche Code-Qualität sicherzustellen. Sie fördern den Austausch im Team über die Code-Struktur, den Stil und die Architektur, und natürlich dienen sie dazu, sowohl Optimierungspotentiale als auch Schwachstellen aufzudecken. In diesem Artikel zeigen wir, wie Atlassians Git-Repository-Manager Stash in Kombination mit SonarQube, einem ausgereiften Tool zur statischen Code-Analyse, und dem Sonar-Plugin für Stash Code-Reviews und damit den Entwicklungsprozess effektiv unterstützen kann.

Code-Qualität optimieren mit SonarQube und Bamboo

Automatisierte statische Code-Analysen des Quelltextes eines Software-Projekts helfen, bestimmte Arten von Fehlern frühzeitig systematisch aufzudecken. Ein etabliertes und hilfreiches Tool für diesen Anwendungsfall ist SonarQube (früher schlicht Sonar). Im folgenden kurzen Tutorial zeigen wird, wie SonarQube in wenigen Minuten eingerichtet und in einen Build eines Bamboo-Integration-Server integriert werden kann.

Tutorial: Firmeneigenes Repository mit Sonatype Nexus aufsetzen

Sonatype Nexus verwaltet Software-Bibliotheken oder -Abhängigkeiten und erlaubt deren bequeme Verteilung und Integration in Software-Projekte. Benötigt ein Entwickler eine bestimmte Bibliothek in seinem Projekt, so kann er sie über gängige Build-Tools wie Maven, Gradle, Ivy, Sbt oder andere dann vom Nexus-Server beziehen und eigene weiterentwickelte Bibliotheken diesem wiederum zur Verfügung stellen. Wie ein solches internes Repository in wenigen Schritten aufgesetzt wird, zeigt dieses Tutorial.

Code-Coverage-Metriken mit Bamboo und Clover

Wie lässt sich die Code-Qualität eines Software-Projektes ermitteln? Wie kann eine möglichst hohe Qualität sichergestellt werden? Natürlich durch Software-Tests – diese müssen jedoch erstellt und in das Projekt integriert werden. Vor diesem Hintergrund erweisen sich Werkzeuge als hilfreich, die Code-Coverage-Metriken ausgeben und die ein solches Software-Projekt automatisiert als Ganzes analysieren können. Weit verbreitet und ausgereift ist in diesem Zusammenhang Clover von Atlassian, das in wenigen Minuten aufgesetzt ist.

Individuelle Software-Entwicklung: Workflows, Branching-Modelle und Continuous Delivery

Software-Entwicklung in einem großen Kundenprojekt funktioniert natürlich nicht nach dem Prinzip „Auf die Plätze, fertig, hacken!“ Vielmehr handelt es sich um einen komplexen Prozess, der einerseits hohen Qualitäts- und Sicherheitsanforderungen unterliegt und der andererseits viel Flexibilität bieten muss. In diesem Beitrag zeigen wir auf, wie ein //SEIBERT/MEDIA-Entwicklungsteam in einem Individualsoftware-Projekt ein neues Feature entwickelt, welche Workflows dabei zugrunde liegen und welche Werkzeuge uns in diesem Prozess unterstützen.