Release-Workflow: ZIP bei jedem Merge nach main
Some checks are pending
CI / PHP Lint (pull_request) Waiting to run
CI / PHP Lint-1 (pull_request) Waiting to run
CI / Unit Tests & Static Analysis (pull_request) Waiting to run
CI / PHP Lint (push) Waiting to run
CI / PHP Lint-1 (push) Waiting to run
CI / Unit Tests & Static Analysis (push) Waiting to run
Some checks are pending
CI / PHP Lint (pull_request) Waiting to run
CI / PHP Lint-1 (pull_request) Waiting to run
CI / Unit Tests & Static Analysis (pull_request) Waiting to run
CI / PHP Lint (push) Waiting to run
CI / PHP Lint-1 (push) Waiting to run
CI / Unit Tests & Static Analysis (push) Waiting to run
.github/workflows/release.yml baut bei jedem Push auf main (also auch
nach jedem gemergten Pull Request) ein installierbares Paket und hängt es
an das rollende Vorab-Release "latest-main". Der Download-Link bleibt
damit stabil und zeigt immer auf den aktuellen Stand. Ein Tag v* erzeugt
mit derselben Mechanik ein reguläres Release.
Details:
- das ZIP entsteht per `git archive`, die Auswahl steuert .gitattributes
(export-ignore) – docs/, tests/, tools/ und CI bleiben draußen, das
Paket ist rund 1,4 MB groß
- eine Prüfschritt kontrolliert, dass Kerndateien wirklich enthalten sind,
dazu gibt es eine .sha256-Datei
- zusätzlich als Build-Artefakt abgelegt (optional, bricht nicht ab, wenn
der Artefakt-Speicher fehlt)
- Release-API wird über den automatisch bereitgestellten Token
angesprochen, FORGEJO_TOKEN dient als Ausweichweg; ohne Token wird der
Schritt übersprungen statt fehlzuschlagen
Neu ist die Datei VERSION als einzige Quelle der Versionsnummer: sie
benennt das Paket und erscheint über Ui::version() unten in der
Admin-Seitenleiste ("v2.6.0 · Entwickelt von Loheide.eu").
Geprüft: Paket lokal gebaut, entpackt und die Anwendung daraus gestartet –
alle Seiten antworten mit 200, keine fehlenden Dateien.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
b7f13d8fac
commit
8facc71455
15 changed files with 216 additions and 3 deletions
|
|
@ -116,6 +116,21 @@ class Ui
|
|||
. '</style>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Version aus der Datei VERSION im Projektstamm.
|
||||
* Damit tragen Oberfläche und Release-Paket dieselbe Nummer.
|
||||
*/
|
||||
public static function version(): string
|
||||
{
|
||||
static $version = null;
|
||||
if ($version === null) {
|
||||
$file = self::root() . '/VERSION';
|
||||
$version = is_file($file) ? trim((string)file_get_contents($file)) : '';
|
||||
}
|
||||
|
||||
return $version;
|
||||
}
|
||||
|
||||
/** Entwicklerhinweis – bewusst an einer Stelle gepflegt. */
|
||||
public const CREDIT_NAME = 'Loheide.eu';
|
||||
public const CREDIT_URL = 'https://loheide.eu';
|
||||
|
|
@ -123,11 +138,16 @@ class Ui
|
|||
/**
|
||||
* Dezenter Hinweis auf den Entwickler, wie er im Seitenfuß erscheint.
|
||||
*/
|
||||
public static function credit(): string
|
||||
public static function credit(bool $withVersion = false): string
|
||||
{
|
||||
$label = function_exists('__') ? __('credit_by') : 'Entwickelt von';
|
||||
|
||||
return '<p class="app-credit">' . htmlspecialchars($label) . ' '
|
||||
$prefix = '';
|
||||
if ($withVersion && self::version() !== '') {
|
||||
$prefix = 'v' . htmlspecialchars(self::version()) . ' · ';
|
||||
}
|
||||
|
||||
return '<p class="app-credit">' . $prefix . htmlspecialchars($label) . ' '
|
||||
. '<a href="' . self::CREDIT_URL . '" target="_blank" rel="noopener">'
|
||||
. self::CREDIT_NAME . '</a></p>';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue