Ein bedeutendes neues Release ist verfügbar , eine Plattform für das Management des gesamten Softwareentwicklungszyklus, die ein vollständiges Set an Werkzeugen für die Projektentwicklung gemäß der DevOps-Paradigmen bietet. In Bezug auf ihre Möglichkeiten ähnelt OneDev GitLab und ermöglicht ebenfalls das Bereitstellen einer Infrastruktur für Zusammenarbeit, Review, Testing, Build und Release-Delivery, ohne sich an externe Cloud-Services wie GitHub zu binden. Der Code des Projekts ist in Java geschrieben und unterliegt der MIT-Lizenz.
Einige Funktionen:
- Ein vereinfachter Prozess für das Deployen eines Build-Clusters zur Ausführung von CI-Bauten in Kubernetes, der keine Agenten oder Runner benötigt. Möglichkeit zum Testen in Containern mit Linux und Windows;
- Unterstützung für die Erstellung von Build-Spezifikationen in einer grafischen Umgebung ohne das Schreiben von YAML-Dateien und das Merken der Syntax;
- Flexible Anpassung des Build-Prozesses unter Verwendung von bedingten Build-Parametern, paralleler Ausführung mehrerer Build-Jobs und automatischer Ausführung von Jobs bei bestimmten Ereignissen;
- Unterstützung für die Definition eigener Status und Felder für Problembenachrichtigungen (issue), Möglichkeit zur Definition von Abhängigkeiten zwischen Feldern und automatische Statusänderungen bei bestimmten Ereignissen;
- Selbstaktualisierende Issue-Oberfläche, die kein Neuladen der Seite erfordert;
- Ein Such- und Navigationssystem für Code und Änderungen, das die Besonderheiten der Syntax von Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS und R berücksichtigt;
- Unterstützung für das Verknüpfen von Diskussionen und externen Kommentaren mit Code und Änderungsblöcken (diff);
- Flexible Regeln für das Überprüfen von Pull-Requests mit der Möglichkeit, bestimmte Branches zu schützen und Entwickler für Reviews zuzuweisen;
- Stufenweise Analyse von Commits beim Review von Pull-Requests. Verknüpfung mit Diskussionen des vorherigen Reviews;
- Eine Abfragesprache, die es ermöglicht, relevante Informationen in Projekten, Commits, Builds, Issues, Pull-Requests und Kommentaren zu finden. Möglichkeit zum Speichern von Abfragen und Erhalten von Benachrichtigungen über neue damit verbundene Ereignisse;
- Ein Zugriffsverwaltungssystem, das es ermöglicht zu bestimmen, wer Code in einem bestimmten Unterverzeichnis ändern, Issues zuweisen, Build-Releases starten und Logs ansehen kann;
- Funktionen zum Erstellen und Klonen von Repositories;
- Abonnieren Sie Benachrichtigungen über Commits im Master-Zweig;
- Unterstützung von Pull-Requests mit automatisierter Überprüfung des übernommenen Commits im System der kontinuierlichen Integration und Genehmigung durch ein Expertengremium, das mindestens zwei Entwickler umfasst;
- Möglichkeit, Issues über Commit-Nachrichten zu schließen, die Diskussionen, Commits, Builds und Pull-Requests verknüpfen können;
- Möglichkeit zur Erstellung von gespeicherten Formularen im Interface, um anzuzeigen, welchen Benutzern die Problemlösungen (Issues) zugewiesen sind;
- Unterstützung der Erstellung benutzerdefinierter Felder, um Issues bestimmten Modulen und Plattformen zuzuordnen;
- Möglichkeit, den Status eines Problems automatisch auf Deployed zu ändern, wenn es in der Build-Phase behoben wird, und auf Review, wenn ein Pull-Request geöffnet wird;
- Möglichkeit, einem Problem den Status Verified zuzuweisen, der nur von Entwicklern mit Tester-Status vergeben werden kann;
- Unterstützung der manuellen Auslösung einer Neu-Builds mit der Möglichkeit, die Version anzugeben, die zugewiesen werden soll, und ein entsprechendes Tag bei erfolgreichem Build zu erstellen;
- Möglichkeit zur Auswahl der Plattform und der Version des Linux-Kernels beim Start einer manuellen Neu-Builds;
- Unterstützung des Testens in CI verschiedener Kombinationen von Oracle/MySQL und Linux/Windows beim Commit in den Master-Zweig;
- Automatische Erstellung von Benachrichtigungen über Probleme (Issues) und Zuweisung eines Verantwortlichen zur Bearbeitung des Problems im Falle eines Fehlschlags des Builds im Master-Zweig in CI. Automatisches Schließen von Issues nach Behebung des Fehlers beim Build.
- Möglichkeit, Dateien in einem Job zu generieren, ihre parallele Verarbeitung in einem zweiten und die Analyse der Ergebnisse in einem dritten;
- Unterstützung des erneuten Starts von Jobs im Falle eines Fehlers beim Start des Handlers in Kubernetes;
- Möglichkeit, den MySQL-Service während der Durchführung der Arbeiten zu nutzen;
- Unterstützung der Angabe eines geheimen Schlüssels bei der Festlegung der Build-Spezifikation;
- Möglichkeit, den Zugang für anonyme Benutzer auf Releases bestimmter Projekte zu beschränken;
- Unterstützung der Beschränkung der Erstellung von Releases nur auf dem Master-Zweig und der Bereitstellung auf Produktionsservern nur von Releases, die aus dem Master-Zweig erstellt wurden.
Quelle: opennet.ru
