Updatesite - minova-afis/aero.minova.rcp GitHub Wiki
Um in anderen Repositories mit Klassen der Core-Anwendung arbeiten zu können, muss dieses Repo in Targetplatformen aufgenommen werden können. Um dies zu ermöglichen, wird eine Updatesite genutzt. Für die Core Anwendung ist diese aero.minova.rcp.updatesite.
Die Updatesite wird als neues Repository angelegt.
Unter Settings → Pages
kann der main
-Branch zum Veröffentlichen ausgewählt werden.
Der Inhalt des Repositories wird nun veröffentlicht, sobald auf main
gepushed wird.
Weitere Info in der Doku von Github.
Das RCP-Repository kann automatisch über einen Workflow veröffentlicht werden.
Dafür einfach unter Actions → Deploy to Updatesite
den Workflow mit einer entsprechenden Commit-Message anstoßen.
Das Projekt wird gebaut und auf die Updatesite ausgeliefert.
Alternativ kann auch per Hand eine neue Version auf der Updatesite eingespielt werden.
Dafür wird nach dem Bauen der WFC-Anwendung einfach der Inhalt des Ordners /aero.minova.rcp/releng/aero.minova.rcp.update/target/repository/
in den root-Ordner des Updatesite-Repositories kopiert.
Um die Anwendung automatisch zu deployen, muss ein workflow angelegt werden, für die RCP-Anwendung ist dieser hier zu finden. Das Deployen wird mit folgendem Code angestoßen:
- name: Deploy 🚀
env:
GITHUB_TOKEN: ${{ secrets.GITHUBACTION_TOKEN_SECRET }}
run: |
git config --global user.email "[email protected]"
git config --global user.name "CE7"
echo $GITHUB_TOKEN
git clone https://CE7:[email protected]/minova-afis/aero.minova.rcp.updatesite
cd aero.minova.rcp.updatesite
rm -fr *
pwd
cp -r ../releng/aero.minova.rcp.update/target/repository/* .
git add .
git commit -m "${{ github.event.inputs.description }}"
git push -f https://CE7:[email protected]/minova-afis/aero.minova.rcp.updatesite HEAD:main
Das Updatesite-Repository wird gecloned, der neue Stand wird in den entsprechenden Ordner kopiert und das Ganze wird wieder auf die Updatesite gepushed. Wichtig ist, dass das Updatesite-Repository öffentlich ist.
Außerdem muss ein Personal Access Token erstellt und dem RCP-Repository hinzugefügt werden.
Das Token wird unter dem eigenen Profil → Settings → Developer Settings → Personal Access Tokens
erstellt.
Das Token muss Repository-Berechtigungen haben und sollte kein Ablaufdatum haben.
Der erstellte Wert muss gespeichert werden, da er über Github nach Verlassen der Website nicht mehr einsehbar ist.
Dieses Token wird jetzt im RCP-Repository eingetragen.
Dafür im Repository unter Settings → Secrets
(man benötigt Admin-Rechte im Repository um die Einstellungen zu sehen) den Knopf New repository secret
klicken, dem Secret einen Namen geben (dieser wird dann im Workflow genutzt) und den geheimen Wert als Value speichern.
Damit unsere Anwendung veröffentlicht werden kann, haben wir eine Datei releng/aero.minova.rcp.update/category.xml
, die unsere Features als Einträge enthält:
<?xml version="1.0" encoding="UTF-8"?>
<site>
<feature id="aero.minova.rcp.feature">
<category name="rcpcore"/>
</feature>
<feature id="aero.minova.libs.feature">
<category name="rcpcore"/>
</feature>
<category-def name="rcpcore" label="Core RCP Application"/>
</site>
Die Updatesite kann über die URL https://minova-afis.github.io/aero.minova.rcp.updatesite/ in eine beliebige Targetplatform eingebunden werden.
Tipp: Eclipse cached den Inhalt von Softwareseiten. Sollte eine Änderung an der Updatesite nicht in der Targetplatform auftauchen, kann ein Neustart von Eclipse helfen.