Definition „Code Build“

Was ist ein Build?

| Autor / Redakteur: LineFeed / Stephan Augsten

Der Begriff „Build“ meint in der Software-Entwicklung sowohl den Prozess des Zusammenfügens von Programmteilen als auch die fertige Software-Version.
Der Begriff „Build“ meint in der Software-Entwicklung sowohl den Prozess des Zusammenfügens von Programmteilen als auch die fertige Software-Version. (Bild: Alexas_Fotos - Pixabay.com)

Als Build bezeichnet die Softwareentwicklung einerseits den gesamten Prozess der Erzeugung einer kompletten, eigenständig lauffähigen Software und andererseits das Ergebnis dieses Prozesses: das oder die ausführbaren Programme einschließlich aller eventuell benötigten Ressourcen.

Abgesehen von einfachsten Programmen besteht jede Software aus mehreren Quelldateien, die in der Regel vor der Ausführung in ein lauffähiges Konstrukt konvertiert werden müssen. Hier kommt der Begriff „Build“ zum Einsatz. Wie eingangs erwähnt kann damit sowohl der Prozess als auch ein spezifischer Softwarestand gemeint sein, der durch die Version aller beteiligten Quellen sowie gegebenenfalls dynamisch beim Build-Prozess spezifizierter Optionen bestimmt ist.

Abgesehen von einer quelloffenen Software deren Build-Prozess der Endnutzer selbst durchführt ist die Kennzeichnung jedes einzelnen Builds durch eine eindeutige Build-Nummer üblich. Sie kann aus einer einfachen, fortlaufenden Nummerierung bestehen, enthält aber häufig auch die Versionsnummer der zugrundeliegenden Quellen.

Ein Beispiel für die komplexe Form ist die von Google für Android verwendete Build-Nummer. Das Nummernschema beginnt mit einem Buchstaben, der dem Initial des Codenamens der Android-Version entspricht, zum Beispiel N für Nougat. Die weitere Struktur ändert sich zwar mit der Version Oreo, der Inhalt bleibt aber gleich. An zweiter Stelle steht ein Buchstabencode, der den Versionsstand des Quelltexts kennzeichnet. Darauf folgt eine Datumsangabe und an letzter Stelle ein Code, der für jeden Build mit gleicher Version und gleichem Datum sequentiell hochgezählt wird.

Build-Tools automatisieren den Prozess

Der Vorgang des Erstellens lauffähiger Softwarepakete wird meist durch Build-Tools automatisiert, die zugleich die Konsistenz der Rahmenbedingungen zwischen verschiedenen Builds sicherstellen. Ein weit verbreitetes Beispiel für die grundlegenden Eigenschaften von Build-Werkzeugen ist das aus dem Unix-Umfeld stammende Programm „make“. Es liest eine Konfigurationsdatei, die üblicherweise den Namen „Makefile“ trägt und Anweisungen für die einzelnen Phasen eines Build-Prozesses enthält.

Jeder Schritt kann von Bedingungen abhängig gemacht werden, wie zum Beispiel der Existenz oder Aktualität bestimmter Dateien. Das ermöglicht einerseits sicherzustellen, dass alle für einen Build nötigen Schritte in der richtigen Reihenfolge durchgeführt werden. Andererseits lässt sich dadurch überflüssiger Aufwand vermeiden, wenn bei einem weiteren Durchlauf Teilergebnisse des vorangegangenen Build-Prozesses noch aktuell sind.

Wo beginnt und endet ein Build?

Ein Build beinhaltet insbesondere das Kompilieren der Quellen, sofern diese in einer Programmiersprache geschrieben sind, die einen solchen Schritt erfordert (wie zum Beispiel C) oder erlaubt (wie Java oder Python). Zum Build-Prozess gehört allgemein aber auch das Bereitstellen aktueller und „sauberer“ Quellen.

Diese Aufgaben kann ein Build-Tool ebenfalls automatisieren, einerseits etwa durch das Auschecken aus einem Versionskontrollsystem oder den Download eines Quelltextarchivs von einem FTP-Server. Andererseits dient beim Beispiel „make“ üblicherweise das Target „clean“ dazu, die Ergebnisse und Zwischenergebnisse eines vorangegangenen Build-Prozesses zu beseitigen.

Als aktuelle Quelle kann in diesem Fall aber auch der Stand einer älteren Version gemeint sein, wenn beispielsweise aufgrund eines Softwarefehlers ein Rollback notwendig ist. Der Build-Prozess endet entweder mit dem Zusammenpacken der erzeugten Dateien für den Export oder der lokalen Installation, falls er unmittelbar auf dem Zielsystem ausgeführt wurde.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Docker Community Edition mit neuem Release-Zyklus

Ab Version 18.06 nur noch halbjährliche Neuerungen

Docker Community Edition mit neuem Release-Zyklus

Docker wird die Community Edition nicht mehr jedes Quartal aktualisieren, sondern nur noch zwei Mal im Jahr. Die Version 18.06 erhält noch drei Monate lang Support. Die nächste Version soll dann sieben Monate Unterstützung erhalten. lesen

AWX und Ansible Tower 3.2 einrichten und nutzen

DevOps-Enabler Ansible, Teil 4

AWX und Ansible Tower 3.2 einrichten und nutzen

Nach der Installation von Ansible Tower werfen wir einen optionalen Blick auf die Installation von AWX, um uns dann mit Konzept und Arbeitsweise der grafischen Oberfläche für Ansible vertraut zu machen. Ab hier unterscheiden sich AWX und Ansible Tower kaum. lesen

Apps und Spiele für Android Oreo anpassen

Google Play fordert API Level 26

Apps und Spiele für Android Oreo anpassen

Neu entwickelte Android Apps und Spiele, die über Google Play verteilt werden, müssen mit dem morgigen Tag die aktuelle API-Stufe 26 vorweisen können. Dies garantiert die Lauffähigkeit unter Android 8.0 Oreo und höher. Ein paar Tipps von Google sollen bei der Umsetzung helfen. lesen

Swift unter Ubuntu Linux verwenden

App-Entwicklung mit Apple Swift, Teil 2

Swift unter Ubuntu Linux verwenden

Apple bietet die Programmiersprache Swift offiziell auch für Ubuntu-Linux an. Dadurch erschließt sich die einfache Welt von Swift auch Anwendern, die keinen Mac verwenden. Leider ist das nicht ganz so komfortabel wie Swift mit XCode auf dem Mac. lesen

Was ist Docker?

Definition „Docker (Software)“

Was ist Docker?

Docker legt Programme samt ihrer Abhängigkeiten in Images ab. Diese bilden die Basis für virtualisierte Container, die auf nahezu jedem Betriebssystem lauffähig sind. So werden Anwendungen portabel und unkompliziert, sei es während der Entwicklung oder beim Skalieren von SaaS-Clustern. lesen

5 Tipps auf dem Weg zu DevOps

Schluss mit dem „Blame Game“

5 Tipps auf dem Weg zu DevOps

DevOps in einem Unternehmen zu etablieren, geschieht nicht von heute auf morgen. Dabei klingt es so einfach: Software-Entwicklung und IT-Betrieb müssen eben enger zusammenarbeiten. Aber wie kann das tatsächlich gelingen? lesen

Shift Left Testing alleine reicht nicht

Continuous Testing – das Geheimnis erfolgreicher Apps

Shift Left Testing alleine reicht nicht

Strebt ein App-Anbieter kurze Release-Zyklen an, muss er trotzdem sicherstellen, dass die Code-Qualität gewahrt bleibt. Continuous Testing kann dabei helfen, agile Entwicklung und Qualität miteinander in Einklang zu bringen. lesen

Was ist IaC?

Definition „Infrastructure as Code“

Was ist IaC?

Infrastructure as Code ist die Fortsetzung der Unix Philosophie mit DevOps-Mitteln. Das Administrationskonzept für IT-Infrastruktur macht die individuelle Installation und Konfiguration von Hard- und Software unabhängig von manueller Interaktion. lesen

Was ist Ant?

Definition „Apache Ant“

Was ist Ant?

Apache Ant ist ein Werkzeug in Form einer Java-Bibliothek, die das Bauen und Verteilen von Software automatisieren kann. Das Tool übernimmt dabei zuverlässig zahlreiche Routineaufgaben. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45233624 / Definitionen)