Package: Release Repository Manager
Das Modul verwaltet ein Release-Repository für b4A Packages. Es stellt Operationen für Initialisierung, Herunterladen und Hochladen von Releases sowie das Auflisten von Packages und Versionen zur Verfügung.
Bezeichnung
- Name
- pm.Repository
Datenströme
- Versions versions: Version
- Packages packages: Package
Konfiguration
- Optionen
- Operation (
operation) - Definiert die Operation, die auf das Release Repository ausgeführt werden soll. Abhängig von der Operation müssen unterschiedliche andere Optionen gesetzt werden.
Mögliche Werte
Initialisieren (init), Hochladen (upload), Herunterladen (download), Packages auflisten (list-packages), Versionen auflisten (list-versions)
- Package (
package) - Name des Package
- Version (
version) - Versionsnummer des Releases
- Hochzuladende Release-Datei (
upload-file) - Release-Datei, die in das Release-Repository hochgeladen werden soll
- Heruntergeladene Release-Datei (
download-file) - Speicherort für die heruntergeladene Release-Datei
- Release Repository Konfigurationsdatei (
repository-config-file) - Pfad zur Konfigurationsdatei für das Release Repository
Beschreibung
Das Modul bedient sich an den verfügbaren Backend-Implementierungen, um ein Release-Repository zu verwalten. Die Einstellungen für das gewählte Backend werden in der Konfigurationsdatei repository.json gespeichert.
Backends
- filesystem
- Das Backend nutzt ein Verzeichnis, um alle Release-Dateien abzulegen und zu verwalten. Dazu wird in einer Index-Datei gespeichert, welche b4A Packages im Repository verfügbar sind. Pro b4A Package wird ein Unterverzeichnis angelegt und darin werden die einzelnen Release-Dateien abgelegt. Das Namensschema für die Dateien ist <Package-Name>-<Version>.zip. Die Einstellungen für das Basisverzeichnis und dem Namen der Index-Datei werden in der Datei repository.json festgelegt.
- directory: Basisverzeichnis für das Release-Repository
- indexFile: Name der Index-Datei
{
"directory": "/data/best4Automic/repository",
"indexFile": ".package.idx"
}
- Artifactory
- Dieses Backend nutzt ein Artifactory Repository, um alle Release-Dateien abzulegen und zu verwalten. Die Kommunikation mit dem Backend geschieht per REST-Anfragen. Es werden die beiden Authentifizierungsmechanismen Basic und Access Token unterstützt. Das Passwort, beziehungsweise der Access Token, kann dabei wahlweise in Klartext oder AE-verschlüsselt hinterlegt werden. Auch hier geschieht dies in der repository.json.
- baseUrl: Basis-Url der Artifactory REST-API
- username: Benutzername für den Artifactory Benutzer im Falle von Basic-Authentisierung
- password: Passwort im Falle von Basic-Authentisierung oder Access-Token andernfalls. Kann AE-verschlüsselt hinterlegt werden.
- authType: AccessToken oder Basic
- repoKey: Der Key für das Repository, in dem die b4A Package Release-Dateien abgelegt werden.
{
"baseUrl": "http://<host>:<port>/artifactory",
"username": "Demo",
"password": "<access_token>/<password>",
"authType": "AccessToken/Basic",
"repoKey": "b4A_Packages"
}
- Gitlab
- Dieses Backend nutzt die Gitlab Package Registry, um die Release-Dateien abzulegen und zu verwalten. Die Kommunikation mit dem Backend geschieht auch hier über REST-Anfragen. Die Authentifizierung funktioniert hier ausschließlich über Access Tokens. Der Access Token, kann dabei wahlweise in Klartext oder AE-verschlüsselt hinterlegt werden. Auch hier geschieht dies in der repository.json. Die Versionierung kann wahlweise aufsteigend oder absteigend konfiguriert werden.
- baseUrl: Basis-Url der Gitlab REST-API
- group: Gruppe im Gitlab, in der die Package-Repositorys abgelegt werden
- token: Access-Token für die Authentifizierung. Kann AE-verschlüsselt hinterlegt werden.
- versionSorting: Aufsteigende (asc) oder absteigende (desc) Sortierung der Versionsnummer
{
"baseUrl": "http://<host>:<port>/api/v4",
"group": "b4A-packages",
"token": "AccessToken",
"versionSorting": "desc"
}
Beispiele
Hochladen einer neuen Release-Datei
./b4A pm.Repository --package B4A.PM --operation upload --version 1.4.0 --download-file /tmp/B4A.PM-20240109.zip --log-variants REPORT
Auflisten aller Releases des b4A Package B4A.BASE
./b4A pm.Repository --operation list-versions --package B4A.BASE --log-variants REPORT --log-levels DATASTREAM