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

AWS Boto3 installieren und konfigurieren

AWS-Ressourcen mit Python bereitstellen, Teil 1

AWS Boto3 installieren und konfigurieren

AWS-Nutzer können Ressourcen in der AWS-Public-Cloud auf verschiedenen Wegen provisionieren. Die programmatische Variante ist vor allem für Entwickler und in DevOps-Szenarien erste Wahl. Zu den zahleichen unterstützten SDKs gehört auch Boto3 für Python. lesen

Agile und sichere Embedded-Software-Entwicklung

Statische Code-Analyse in CI/CD-Prozessen

Agile und sichere Embedded-Software-Entwicklung

Innerhalb von CI/CD-Prozessen, sprich Continuous Integration und Deployment, spielt Qualitätssicherung eine zentrale Rolle. immerhin sollen diese agilen Methoden besseren Code und leichtere Fehlerbeseitigung gewährleisten. Besonders im Embedded-Umfeld kommt es dabei darauf an, die Entwickler frühzeitig auf Fehler oder Abweichungen von gesetzten Standards hinzuweisen. lesen

Linux unter Windows nutzen

WSL – das Windows-Subsystem for Linux

Linux unter Windows nutzen

Microsoft sieht wie andere Hersteller das Potenzial der Open-Source-Community und konzentriert sich nicht mehr ausschließlich auf das eigene Windows-Betriebssystem. Linux als Subsystem unter Windows ist in dieser Hinsicht das neueste Feature. Das ist nicht nur für Entwickler praktisch. lesen

UI-Versionskontrollsystem von Applitools

Benutzeroberflächen per Commit aktualisieren

UI-Versionskontrollsystem von Applitools

Applitools hat ein UI Version Control System veröffentlicht. Mit diesem können Entwickler rückverfolgen, wie frühere Versionen einer Anwendung ausgesehen haben, ohne die ältere Version erneut zu erstellen. lesen

Microsoft VSTS wird Azure DevOps

„Evolution der Visual Studio Team Services“

Microsoft VSTS wird Azure DevOps

Die Visual Studio Team Services von Microsoft sollen künftig in Azure DevOps aufgehen. Damit einher gehen fünf neue Dienste, die die Anwendungsentwicklung über den gesamten Software-Lebenszyklus unterstützen sollen. lesen

Der Unterschied zwischen CMake und Make

Definition „Cmake / Make“

Der Unterschied zwischen CMake und Make

Werkzeuge wie Make oder CMake sind für das Build-Management zuständig. In der Software-Erstellung übernehmen entsprechende Tools wiederkehrende, zeitraubende und fehleranfällige Aufgaben. lesen

Images und Container unter Docker

Docker-Einführung, Teil 2

Images und Container unter Docker

Irgendetwas muss Docker besser machen, als andere bekannte Prinzipien und Methoden der Containerisierung und Isolierung. Im zweiten Teil des Docker-Workshops beleuchten wir daher das Konzept der Images, insbesondere den Unterschied zwischen Images und Containern. lesen

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

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)