Wie ich in einem Teams-Chat lernte, was GraphQL genau ist
13. Februar 2021 · Von Girish Bangalore
Alles begann damit, dass Surya dies in unserem Teams postete. Surya verantwortet unser komplettes Backend (platform.integrtr.com), von Grund auf. Ich…
devops
Sonalika Porwal · 3. März 2022

Dieser Beitrag wurde aus dem englischen Original übersetzt.
Entwicklerinnen und Entwickler sind von der schieren Menge verfügbarer Werkzeuge manchmal überfordert und greifen deshalb zu denen, die für sie am besten funktionieren. Wenn es Ihnen wie unserem Team geht, bevorzugen Sie vielleicht VSCode gegenüber der WebIDE (für sprachübergreifende Entwicklung funktioniert es schlicht besser). Und vielleicht möchten Sie auch für Ihre UI5-Entwicklung bei GitHub bleiben, genau wie Sie es für ReactJS, NodeJS oder andere Frameworks tun.
Was machen Sie dann mit den Deployments? Wie bauen, deployen und testen Sie Ihre UI5-Anwendungen (OpenUI5/SAPUI5) unkompliziert ohne die eingebauten WebIDE-Funktionen?
Dieser Beitrag baut auf den Erkenntnissen aus unserer UI5Con2021-Session "Automate UI5 App Deployments with GitHub" auf und liefert eine Schritt-für-Schritt-Anleitung, wie Sie mit GitHub Actions eine effiziente CI/CD-Pipeline für Ihre UI5-Apps aufsetzen und nutzen.
TLDR: Wir verwenden eine eigene GitHub Action namens ui5-deploy, um unser Setup für das automatische Bauen und Deployen von Code in die SAP BTP Neo Umgebung zu vereinfachen und zu beschleunigen. Die offizielle Referenzdokumentation finden Sie unter https://github.com/marketplace/actions/ui5-deploy
UI5Con-Session:
Ansehen: UI5-App-Deployments mit GitHub automatisieren
Damit ein Deployment einer Anwendung überhaupt stattfinden kann, ist der build notwendig. Der Build ist der Prozess, in dem Software kompiliert und in eine Form gepackt wird, die für Deployment, Installation oder Release ideal ist. Sehen wir uns Build und Deployment etwas genauer an.
Der Build ist einer der ganz wesentlichen Schritte bei der Entwicklung jeder produktiven Anwendung. In UI5-Anwendungen wird während der Entwicklung üblicherweise der Ordner webapp verwendet, während für das Laden im Browser im produktiven Einsatz der Ordner dist genutzt wird. Der Prozess, der aus dem Ordner webapp den Ordner dist erzeugt, heißt Build.
Ein Build-Prozess kann mehrere Schritte umfassen, zum Beispiel:
Sobald aus dem Build-Prozess ein produktiver dist-Ordner vorliegt, besteht der nächste Schritt darin, diese Änderungen in der Cloud zu deployen, damit Endanwender Ihre Anwendung über eine URL erreichen können.
Für jemanden mit Hintergrund in anderen JS-Frameworks mögen diese Konzepte sehr grundlegend klingen. Wer allerdings lange Zeit ausschließlich mit UI5 gearbeitet hat, findet sie möglicherweise verwirrend und überflüssig. Der Grund: In der Praxis müssen sich Entwickler darum nicht kümmern. Meist handelt es sich um einmalige Einrichtungen durch erfahrene Entwickler oder Architekten. Außerdem bietet SAP mit WebIDE und Business Application Studio einen einfacheren Weg an.
Wie beschrieben stellt SAP mehrere GUI-basierte Lösungen bereit, um UI5-Anwendungen zu deployen. Wozu also das Deployment automatisieren? Wie hilft das der Produktivität? Hier einige Vorteile aus unserer Erfahrung:
1. Zentrales Deployment
Das Deployment ist einer der letzten Schritte, bevor eine Anwendung für Endanwender verfügbar wird. Ein zentrales Deployment hilft nicht nur dabei, alle Deployments besser nachzuvollziehen, es verringert auch die Wahrscheinlichkeit, dass ein Entwickler einen fehlerhaften Build deployt.
2. Regelmäßige Deployments
Ein automatisiertes Setup ohne Deployment-Overhead für neue Builds ermutigt das Entwicklungsteam zu häufigen Deployments, besonders in der DEV-Umgebung. Dieses feature- oder Git-Commit-bezogene Deployment hilft anderen Teammitgliedern dabei, mögliche Probleme früh zu erkennen, und hält alle auf dem aktuellen Stand.
3. Automatisierte Qualitätsprüfungen | Integrierte statische Codeanalyse
Statische Codeprüfungen wie ESLint verhindern, dass die Anwendung an typischen JS-Fehlern scheitert. Indem diese Prüfungen automatisch vor jedem Build laufen, kombiniert mit weiteren nützlichen GitHub Actions, können wir sicher sein, dass der Code vor jedem Deploy zwingend unser Quality Gate passiert hat.
4. GitHub Secrets für zentralen Zugriff
Da die Deployments zentral über unsere CI/CD-Pipeline laufen, entstehen keine Engpässe durch SAP-BTP-Berechtigungen oder die Notwendigkeit, Zugangsdaten mit einzelnen Entwicklern zu teilen. Mit GitHub Secrets lässt sich ein zentraler Benutzer einmalig sicher hinterlegen und anschließend automatisch für alle Deployment-Läufe verwenden.
Wir nutzen dafür GitHub Actions, um unser Setup zu vereinfachen. Mit GitHub Actions erstellen Sie eigene Software-Lifecycle-Workflows direkt in Ihrem GitHub-Repository. Diese Workflows bestehen aus einzelnen Aufgaben, den sogenannten Actions, die bei bestimmten Ereignissen automatisch ausgeführt werden können. Mehr dazu finden Sie in der offiziellen GitHub-Dokumentation.
Das sind schöne Ergänzungen zum ohnehin umfangreichen Funktionsumfang von GitHub.
Eine Annahme für die nächsten Schritte ist, dass Sie bereits wissen, wie ein Deployment einer Anwendung nach SAP BTP Neo abläuft. Es ist wichtig zu verstehen, welche Schritte wir hier automatisieren. Falls nicht, finden Sie hier↗️ eine Anleitung.
Alle Inhalte rund um GitHub Actions liegen im Ordner .github/workflows des Projekts. Falls Ihr Projekt diesen Ordner nicht hat, legen Sie ihn an.
In diesem Ordner benötigen wir eine .yaml-Datei, die sämtliche Konfigurationen enthält. Der Dateiname kann frei gewählt werden. Der Einfachheit halber verwenden wir hier deployment.yaml. Am Ende sollte Ihre Ordnerstruktur in etwa wie im folgenden Ausschnitt aussehen.
root
|__ .github
|__ workflows
|__ deployment.yaml
deployment.yaml
name: SAP BTP Deployment
on:
# deployment will take place on GitHub PUSH action, whenever there is a push to the 'master' branch (we can change it to any action, Ex: COMMIT)
push:
branches:
- master
# for manual deployement
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
jobs:
deploy:
name: Deployment
runs-on: ubuntu-latest
# the jobs which will run on this event
steps:
- name: Checkout to repository
uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Load NPM dependencies
run: yarn
- name: Build UI5 Project
run: yarn build-all
- name: Deploying Project
uses: integrtr/ui5-deploy@master
with:
type: 'neo'
user: ${{ secrets.NEO_USER }}
password: ${{ secrets.NEO_PASSWORD }}
host: ${{ secrets.NEO_HOST }}
sub-account-id: ${{ secrets.NEO_ACCOUNT }}
Da wir mehrere GitHub Secrets verwenden, die für die Verbindung zu SAP BTP notwendig sind, können wir diese im Secrets-Bereich von GitHub pflegen: GitHub repository → Go to settings tab → Secrets
Hinweis: Zum Pflegen von Secrets benötigen Sie Administrator- oder Owner-Rechte im GitHub-Repository.
SAP BTP verlangt für eine Anwendung einige zwingend notwendige Grunddaten. Diese lassen sich in der Datei mta.yaml im Wurzelverzeichnis Ihres Projekts pflegen.
root
|__ mta.yaml
mta.yaml
_schema-version: '2.0.0'
ID: 'ui5boilerplate'
version: 1.0.0
parameters:
hcp-deployer-version: '1.0.0'
modules:
- name: 'ui5boilerplate'
type: com.sap.fiori.app
path: ./dist
parameters:
html5-app-name: 'ui5boilerplate'
html5-app-display-name: 'ui5boilerplate'
minimum-sapui5-version: 1.44.10
html5-app-version: 1.0.0-${timestamp}
Wir haben unser Projekt so konfiguriert, dass es eine GitHub Action nutzt und unsere Anwendung bei jedem neuen Commit auf dem master-Branch nach BTP deployt. Das ist das Standardverhalten, das Sie ab jetzt haben, und es lässt sich mithilfe der GitHub-Referenzdokumentation durch Anpassen der yaml-Dateien vollständig auf Ihre Bedürfnisse zuschneiden.
Jetzt können Sie Ihre neuen Änderungen nach GitHub pushen und werden im Tab "Actions" die GitHub Action sehen, sobald Ihr Code in den master-Branch gemergt ist. Nach Abschluss des Deployments sehen Sie den aktualisierten Code in Ihrem BTP-Subaccount.
Beispiel-Repository mit GitHub-Action-Setup: https://github.com/integrtr/ui5-boilerplate/tree/basic-deployment-setup
Nachdem Sie nun das Grundsetup für Ihre Deployments konfiguriert und automatisiert haben, experimentieren Sie ruhig weiter, um die Abläufe noch effizienter zu machen. Einiges, das Sie ausprobieren können:
ui5-deploy, um Deployments für Ihre ABAP-Umgebungen zu konfigurierenViel Freude beim Automatisieren Ihrer Entwicklungs-Workflows!
Ähnliche Beiträge
13. Februar 2021 · Von Girish Bangalore
Alles begann damit, dass Surya dies in unserem Teams postete. Surya verantwortet unser komplettes Backend (platform.integrtr.com), von Grund auf. Ich…
26. August 2020 · Von INTEGRTR Team
Serverless-Anwendungen und Docker sind seit einigen Jahren die Schlagworte schlechthin. Vor ein paar Jahren gab es im Grunde nur eine Möglichkeit,…
20. August 2026 · Von Nitish Mehta
Die SAP SuccessFactors DATEV Schnittstelle verbindet Personaldaten aus SAP SuccessFactors direkt mit DATEV, der in Deutschland am weitesten…
Mit zunehmender Effizienz bei Digitalisierung und Datenfluss erwarten Sie einen höheren Unternehmenswert und eine bessere Wettbewerbsfähigkeit.