Werkzeuge für kontinuierliche Integration und Codeversionierung

Bonjour, je m’appelle José et je travaille en tant que CTO, Directeur Technique chez Netdevices. Aujourd’hui je vais vous parler de l’fortschreitende Integrations, die Versionierungswerkzeuge und ihre Nützlichkeit bei der Erstellung von Anwendungen oder Software.

kontinuierliche-integration-und-code-version-tools

Was ist kontinuierliche Integration?

Erstens ist zu unterscheiden zwischen demfortschreitende Integration und die fortgesetzte Bereitstellung.

Zum einen wird die kontinuierliche Integration genutzt, um Anwendungen automatisch zu kompilieren, zu testen und zu paketieren. Es wird auch den Prozess der Überprüfung erleichtern, ob das Produkt die Erwartungen unserer Kunden erfüllt.

Auf der anderen Seite besteht Continuous Deployment darin, Anwendungen immer automatisch und kontinuierlich auszuliefern, was den Entwicklern das Leben erleichtert.

Kontinuierliche Integration mit Jenkins

jenkins_integration_fortsetzen

Jenkins ist ein Open-Source-Werkzeug für kontinuierliche Integration. Es wird auch für die kontinuierliche Bereitstellung verwendet. Mit diesem Werkzeug können wir die Erstellung der Anwendung sowie eine Reihe damit verbundener Aufgaben wie Unit-Tests automatisieren (mit dem Ziel zu sehen, ob der Code wie erwartet läuft). Es gibt uns auch die Möglichkeit, die Anwendung entweder auf einer Testplattform oder direkt in der Produktion einzusetzen.

Unsere kontinuierliche Integration mit Jenkins basiert auf unserem Versionierungstool, GitLabum Änderungen im Quellcode zu verfolgen und einen neuen Build der Anwendung auszulösen.

Versionierungswerkzeuge? Wozu sind sie da?

Versionierungswerkzeuge strukturieren den Arbeitsablauf der Entwickler. In der Tat erlaubt es einem Team, parallel an verschiedenen Teilen der Anwendung zu arbeiten und dabei die Historie der Änderungen zu behalten. Sie ermöglichen es auch, Konflikte hervorzuheben.

Es gibt jedoch eine Einschränkung: Sie können die Quelle des Konflikts nicht definieren. Es wird also an den Entwicklern liegen, dieses Problem zu lösen.

Dies ist der Punkt, an dem Werkzeuge zur kontinuierlichen Integration wie Jenkins.

Versionierung mit Gitlab

gitlab-versioning_tool

Gitlab ist ein Werkzeug zur Versionsverwaltung von Quellcode, Open Source. Ein Äquivalent zu privatem GitHub.

Es bietet mehrere Funktionen wie z. B.:

  • Quellcode-Versionsverwaltung und Webprojekt-Hosting
  • Zusammenarbeit zwischen mehreren Entwicklern an demselben Projekt
  • Erstellung, Verwaltung und Klassifizierung von "Issues" (Aufgaben)

Ein Hinweis: Dieses Tool enthält auch Funktionen zur kontinuierlichen Integration (Gitlab CI).

netdevices

NetDevices ist ein Team aus methodischen Projektmanagern, geekigen Entwicklern, Integratoren / Webdesignern, die alle eine Leidenschaft für die Webentwicklung und neue Technologien haben.

Sie haben digitale Projekte? Wir bringen Ihre Ambitionen zum Leben und begleiten Sie durch den gesamten Prozess der digitalen Transformation.

Mit unseren Lösungen Web2Mobile, Sharry (mobiler Marktplatz) und unserer Partnerschaft mit IBM sind wir in der Lage, Ihre Bedürfnisse von einfach bis komplex zu erfüllen.

Unsere bevorzugten Technologiebereiche (aber nicht nur) : Fullstack JS, React Native, ReactJS, Nodejs, Angular 1&2, Ionic, Cordova, Redux... und die dazugehörigen Werkzeuge : Jira, Jenkins, Slack, Trello, kontinuierliche Integration, TDD

[wpforms id="9980" title="false"]
<div class="wpforms-container wpforms-container-full" id="wpforms-9980"><form id="wpforms-form-9980" class="wpforms-validate wpforms-form wpforms-ajax-form" data-formid="9980" method="post" enctype="multipart/form-data" action="/lintegration-continue-et-les-outils-de-version-de-code/" data-token="607587a15350725325afead1ba950707"><noscript class="wpforms-error-noscript">Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.</noscript><div class="wpforms-field-container"><div id="wpforms-9980-field_3-container" class="wpforms-field wpforms-field-layout" data-field-id="3"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-9980-field_3">Layout</label><div class="wpforms-field-layout-columns wpforms-field-layout-preset-50-50"><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_0-container" class="wpforms-field wpforms-field-name" data-field-id="0"><label class="wpforms-field-label" for="wpforms-9980-field_0">Résumé / Pitch du projet <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-9980-field_0" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][0]" required></div><div id="wpforms-9980-field_16-container" class="wpforms-field wpforms-field-radio wpforms-conditional-trigger" data-field-id="16"><label class="wpforms-field-label" for="wpforms-9980-field_16">J&#039;ai une description détaillée du projet</label><ul id="wpforms-9980-field_16"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_16_1" name="wpforms[fields][16]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_16_2" name="wpforms[fields][16]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_2">Non</label></li></ul></div><div id="wpforms-9980-field_18-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="18" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_18">Vous avez des technos en tête ?</label><ul id="wpforms-9980-field_18"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_18_1" name="wpforms[fields][18][]" value="fullstackJS / python" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_1">fullstackJS / python</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_18_2" name="wpforms[fields][18][]" value="nocode bubble" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_2">nocode bubble</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_18_3" name="wpforms[fields][18][]" value="autre" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_3">autre</label></li></ul></div><div id="wpforms-9980-field_19-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="19" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_19">Type de projet</label><ul id="wpforms-9980-field_19"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_19_1" name="wpforms[fields][19][]" value="Applications web / mobiles" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_1">Applications web / mobiles</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_19_2" name="wpforms[fields][19][]" value="Projet data, IA " ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_2">Projet data, IA </label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_19_3" name="wpforms[fields][19][]" value="Site vitrine / e-commerce" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_3">Site vitrine / e-commerce</label></li></ul></div><div id="wpforms-9980-field_12-container" class="wpforms-field wpforms-field-textarea wpforms-conditional-field wpforms-conditional-show" data-field-id="12" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_12">Description détaillée de votre projet </label><textarea id="wpforms-9980-field_12" class="wpforms-field-medium" name="wpforms[fields][12]" ></textarea></div></div><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_1-container" class="wpforms-field wpforms-field-email wpforms-one-third" data-field-id="1"><label class="wpforms-field-label" for="wpforms-9980-field_1">Votre e-mail <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-9980-field_1" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][1]" required></div><div id="wpforms-9980-field_17-container" class="wpforms-field wpforms-field-radio" data-field-id="17"><label class="wpforms-field-label" for="wpforms-9980-field_17">Signer un accord de confidentialité ?</label><ul id="wpforms-9980-field_17"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_17_1" name="wpforms[fields][17]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_17_2" name="wpforms[fields][17]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_2">Non</label></li></ul></div></div></div></div><div id="wpforms-9980-field_22-container" class="wpforms-field wpforms-field-checkbox" data-field-id="22"><ul id="wpforms-9980-field_22"><li class="choice-1 depth-1 wpforms-selected"><input type="checkbox" id="wpforms-9980-field_22_1" name="wpforms[fields][22][]" value="Recevoir les newsletters personnalisées" checked='checked'><label class="wpforms-field-label-inline" for="wpforms-9980-field_22_1">Recevoir les newsletters personnalisées</label></li></ul></div></div><div class="wpforms-submit-container"><input type="hidden" name="wpforms[id]" value="9980"><input type="hidden" name="wpforms[author]" value="1"><input type="hidden" name="wpforms[post_id]" value="5434"><button type="submit" name="wpforms[submit]" id="wpforms-submit-9980" class="wpforms-submit" data-alt-text="Envoi..." data-submit-text="Envoyer" aria-live="assertive" value="wpforms-submit">Envoyer</button><img src="https://www.netdevices.fr/wp-content/plugins/wpforms/assets/images/submit-spin.svg" class="wpforms-submit-spinner" style="display: none;" width="26" height="26" alt="Chargement en cours"></div></form></div> <!-- .wpforms-container -->