In unserer Vertiefungsarbeit bei der TEKO im Fach Programmieren Teil 1 werden meyerf99 & quattro99 das Thema GitHub Actions näher erläutern.
Dieses Git Repository ist ein Bestandteil der Vertiefungsarbeit und zeigt untenstehend auf, wie das Game mithilfe von GitHub Actions zu Microsoft Azure Web App deployed werden kann und wie mithilfe eines Git Tag's ein Release erstellt wird.
- Microsoft Azure Account inkl. Subscription -> z.B. Azure for Students
Erstellung eines Microsoft Azure Web App Service mithilfe von Azure CLI.
Beispiel
# Verbindung zu Microsoft Azure Tenant herstellen
az login
# Erstellung Ressource Gruppe
az group create -l switzerlandnorth -n rg-teko-github-actions-prod-switzerlandnorth
# Erstellung App Service Plan
az appservice plan create -g rg-teko-github-actions-prod-switzerlandnorth -n asp-teko-github-actions-prod-switzerlandnorth-001 --is-linux --sku FREE
# Erstellung App im erstellten App Service Plan
az webapp create -g rg-teko-github-actions-prod-switzerlandnorth -p asp-teko-github-actions-prod-switzerlandnorth-001 -n teko-github-actions-prod-switzerlandnorth-001 --runtime "php:8.0" --https-only true
- GitHub Account
- Repository -> z.B. dieses Repository forken
- Wechsle auf dem GitHub Repository den Reiter zu Actions
- Im Suchfeld folgendes eingeben Deploy a PHP app to an Azure Web App und auf Configure klicken
-
Dabei wird nun ein neues File azure-webapps-php.yml im richtigen Unterordner des Git Repository erstellt. Folgende Variablen müssen im YAML File gesetzt werden:
- AZURE_WEBAPP_NAME = Applikationsname -> z.B. teko-github-actions-prod-switzerlandnorth-001
- PHP_VERSION = PHP Version welche verwendet wird -> z.B. '8.0'
Sobald die Änderungen vollzogen wurden, kann das neue YAML File für GitHub Actions oben rechts mit Start commit direkt in master Branch commited & gepushed werden.
- Unter Settings -> Secret -> Actions muss ein geheimer Schlüssel mit dem Namen AZURE_WEBAPP_PUBLISH_PROFILE erstellt werden. Dabei wird der Inhalt des Publish Profile welches auf dem Azure App Service heruntergeladen werden kann, als geheimer Schlüssel/Variable gespeichert.
- Nun wird bei jedem Commit in master Branch ein automatisierter Build & Deployment zu Microsoft Azure App Service ausgelöst.
- Der dazugehörige GitHub Action Workflow für das automatisierte Erstellen eines Releases befindet sich hier: release.yml
Wichtig: Es wird nur ein Release erzeugt, sobald ein Tag gepushed wird.