Skip to content
This repository has been archived by the owner on Jul 9, 2024. It is now read-only.

Latest commit

 

History

History
95 lines (67 loc) · 5.44 KB

distribution.md

File metadata and controls

95 lines (67 loc) · 5.44 KB

Distributionen

Für eine bessere Nutzererfahrung erstellen wir verschiedene Distributionen, die ohne installation von Python direkt ausgeführt werden können.
Diese sind im Abschnitt assets des neusten Release zu finden.

Download

Verfügbare Distributionen:

Ausführung Windows:

  • installer ausführen
  • vaccipy installieren
  • vaccipy ausführen
  • (INFO: Vaccipy kann später auch wieder deinstalliert werden)

Ausführung Linux:

  • .zip Ordner entpacken
  • Eventuell notwendig: Die Terminservice- und Driver-Executable ausführbar machen. Dazu das Terminal zum linux-64-terminservice-Ordner navigieren und folgende Befehle ausführen:
    sudo -- sh -c 'chmod +x ./linux-64-terminservice; chmod +x ./tools/chromedriver/chromedriver-linux-64'
  • Im linux-64-terminservice-Ordner die ./linux-64-terminsvervice executable per Terminal ausführen.

Für mehr Info zum Verteilen und Erstellen der Distributionen: Shipping und Releases

Shipping und Releases

Es gibt aktuell zwei aktive Worklflows:

  • der Build Workflow wird bei jedem push gestartet und überprüft ob die aktuellen Änderungen auch in ein Build gebaut werden können.
  • der Deploy Workflow wird bei jedem push eines Tags gestartet und erstellt ein neues Build sowie ein neues Release dazu.

Wie werden Releases erstellt ?

Um ein neues Release zu erstellen, muss ein neues Tag (dessen Name mit v starten und im Format vx.y.z ist bsp. v1.1.0) zu dem neuesten Stand (Commit) erst hinzugefügt und dann gepushed werden. Das startet den Deploy Workflow.

Wie werden Distributionen erstellt ?

Zum Erstellen der Distributionen wird pyinstaller verwendet.
Schritte zum Erstellen einer Distribution:

  • Erstelle eine .spec Datei für die main.py (einmalig)

  • Erstelle die Distribution basierend auf der erstellten .spec Datei:

    pyinstaller --clean specs/SPECNAME.spec

    Nachdem mit pyinstaller die Distribution erstellt wurde, ist diese in im dist/ folder zu finden.

Windows Konsolenanwendung

.spec Datei erstellen und anschließend Distribution erstellen:

pyi-makespec main.py --specpath "specs//" --add-binary "..\tools\chromedriver\chromedriver-windows.exe;tools\chromedriver\" --name windows-terminservice --hidden-import plyer.platforms.win.notification --hidden-import cloudscraper --add-data "../tools/cloudscraper;./cloudscraper/" --icon "..\images\spritze.ico" --add-data "../version.txt;." --additional-hooks-dir "../tools/additional_hooks"

pyinstaller --clean specs/windows-terminservice.spec

Windows GUI

pyi-makespec gui.py --specpath "specs//" --add-binary "..\tools\chromedriver\chromedriver-windows.exe;tools\chromedriver\" --add-binary "..\tools\gui\kontaktdaten.ui;tools\gui\" --add-binary "..\tools\gui\main.ui;tools\gui\" --add-binary "..\tools\gui\terminsuche.ui;tools\gui\" --add-binary "..\tools\gui\impfzentren.ui;tools\gui\" --add-binary "..\tools\gui\ui_qtcodegen.ui;tools\gui\" --add-binary "..\images\spritze.ico;images\" --name windows-terminservice-gui --hidden-import plyer.platforms.win.notification --hidden-import cloudscraper --add-data "../tools/cloudscraper;./cloudscraper/" --icon "..\images\spritze.ico" --windowed --add-data "../version.txt;." --additional-hooks-dir "../tools/additional_hooks"

pyinstaller --clean specs/windows-terminservice-gui.spec

Linux

pyi-makespec main.py --specpath "specs//" --add-binary "../tools/chromedriver/chromedriver-linux-64:tools/chromedriver/" --name linux-64-terminservice --hidden-import cloudscraper --add-data "../tools/cloudscraper;./cloudscraper/" --icon "..images\spritze.ico" --add-data "../version.txt:." --additional-hooks-dir "../tools/additional_hooks"
 
pyinstaller --clean specs/linux-64-terminservice.spec

Windows Installer

Für den Windows installer wird aktuell Inno Setup verwendet.
Im Deploy Workflow führt der Inno Setup Compiler das windows-terminservice.iss Script aus, welches die zuvor von Pyinstaller gebaute Distribution, in einen Installer packt.

Tipp: Zum erstellen und bearbeiten des .iss Scripts empfiehlt sich der Inno Script Studio script editor welcher im QuickStart Pack vorhanden ist.

Permissions

Wenn vaccipy files oder folder bearbeiten können soll, bspw. die kontaktdaten.json, müssen die entsprechenden Rechte vergeben werden. Diese werden in der .iss file gesetzt.

⚠️ Wichtig:

"It is not recommended that you use this parameter if you aren't familiar with ACLs or why you would need to change them, because misusing it could negatively impact system security"

Resources