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 Backende 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"
}
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