Merge pull request #127 from Deutscher-Tischfussballbund/chore/version-from-tags

chore: create version in sportsmanager from git tag
This commit is contained in:
MarvinF
2025-08-11 17:43:27 +02:00
committed by GitHub
4 changed files with 54 additions and 19 deletions
+19 -7
View File
@@ -6,7 +6,7 @@ name: Sportsmanager Release
on: on:
push: push:
tags: tags:
- 'v[0-9]+.[0-9]+.[0-9]+' # run only on version tags like v1.0.0 - 'v[0-9]+.[0-9]+.[0-9]+' # run only on version tags like v1.0.0
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -24,7 +24,19 @@ jobs:
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci
- name: Get version from git tag
run: echo "VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
- name: Update version.php
run: |
echo "<?php" > src/structure/components/com_sportsmanager/util/version.php
echo "defined('_JEXEC') or die;" >> src/structure/components/com_sportsmanager/util/version.php
echo "return [" >> src/structure/components/com_sportsmanager/util/version.php
echo " 'version' => '${{ env.VERSION }}'," >> src/structure/components/com_sportsmanager/util/version.php
echo " 'date' => '$(date +%F)'," >> src/structure/components/com_sportsmanager/util/version.php
echo "];" >> src/structure/components/com_sportsmanager/util/version.php
- name: Generate release notes - name: Generate release notes
id: release_notes_extension id: release_notes_extension
uses: release-drafter/release-drafter@v6 uses: release-drafter/release-drafter@v6
@@ -37,10 +49,10 @@ jobs:
- name: Save release notes to file - name: Save release notes to file
run: | run: |
echo "${{ steps.release_notes_extension.outputs.body }}" > RELEASE_NOTES.md echo "${{ steps.release_notes_extension.outputs.body }}" > RELEASE_NOTES.md
- name: Run build script - name: Run build script
run: npm run release run: npm run release
- name: Generate release notes - name: Generate release notes
id: release_notes_github id: release_notes_github
uses: release-drafter/release-drafter@v6 uses: release-drafter/release-drafter@v6
@@ -52,7 +64,7 @@ jobs:
- name: Save release notes to file - name: Save release notes to file
run: | run: |
echo "${{ steps.release_notes_github.outputs.body }}" > RELEASE_NOTES.md echo "${{ steps.release_notes_github.outputs.body }}" > RELEASE_NOTES.md
- name: Create GitHub Release - name: Create GitHub Release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
with: with:
@@ -62,7 +74,7 @@ jobs:
body_path: "RELEASE_NOTES.md" body_path: "RELEASE_NOTES.md"
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Delete draft release via API # workaround: remove leftover draft by release-drafter - name: Delete draft release via API # workaround: remove leftover draft by release-drafter
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -70,7 +82,7 @@ jobs:
run: | run: |
drafts=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ drafts=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$REPO/releases | jq '.[] | select(.draft == true)') https://api.github.com/repos/$REPO/releases | jq '.[] | select(.draft == true)')
if [ -n "$drafts" ]; then if [ -n "$drafts" ]; then
id=$(echo "$drafts" | jq -r '.id') id=$(echo "$drafts" | jq -r '.id')
curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \ curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
@@ -15,7 +15,6 @@ use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Version; use Joomla\CMS\Version;
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
const SPORTS_MANAGER_VERSION = "2.0.3";
function laufzeitInit(): void function laufzeitInit(): void
{ {
@@ -56,6 +55,7 @@ else if (isset($_REQUEST['filter_saison_id']))
global $content; global $content;
global $task; global $task;
global $params; global $params;
$app = Factory::getContainer()->get(SiteApplication::class); $app = Factory::getContainer()->get(SiteApplication::class);
$jInput = $app->input; $jInput = $app->input;
$task = $jInput->getCmd('task'); $task = $jInput->getCmd('task');
@@ -0,0 +1,6 @@
<?php // do not change this file, this is automatically updated while building releases, see .github/workflows/build_release.yml
defined('_JEXEC') or die;
return [
'version' => 'DEV',
'date' => '2025-08-05',
];
@@ -12,7 +12,8 @@ defined('_JEXEC') or die('Restricted access');
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php'; require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php';
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php'; require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
function formatTimediff( $timestamp1, $timestamp2, $verbose ) { function formatTimediff( $timestamp1, $timestamp2, $verbose ): string
{
if (empty($timestamp1) || empty($timestamp2)) { if (empty($timestamp1) || empty($timestamp2)) {
return ""; return "";
} else { } else {
@@ -27,7 +28,8 @@ function formatTimediff( $timestamp1, $timestamp2, $verbose ) {
} }
} }
function formatTeamName( $team_name, $team_id, $highlight_team_id ) { function formatTeamName( $team_name, $team_id, $highlight_team_id ): string
{
if ($team_id == $highlight_team_id) { if ($team_id == $highlight_team_id) {
return "<b><i>" . htmlentities_utf8($team_name) . "</i></b>"; return "<b><i>" . htmlentities_utf8($team_name) . "</i></b>";
} else { } else {
@@ -37,10 +39,25 @@ function formatTeamName( $team_name, $team_id, $highlight_team_id ) {
class HTML_sportsmanager_admin class HTML_sportsmanager_admin
{ {
private static $versionData = null;
private static function loadVersionData(): void
{
if (self::$versionData === null) {
self::$versionData = include JPATH_SITE . '/components/com_sportsmanager/util/version.php';
}
}
public static function getVersion(): string
{
self::loadVersionData();
return self::$versionData['version'] ?? 'DEV';
}
static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void
{ {
function checkZeilenumbruch($Spalte_Nr, $max_Spalten) function checkZeilenumbruch($Spalte_Nr, $max_Spalten): int
{ {
$Spalte_Nr++; $Spalte_Nr++;
if ($Spalte_Nr >= $max_Spalten){ if ($Spalte_Nr >= $max_Spalten){
echo "</tr>\n<tr>\n"; echo "</tr>\n<tr>\n";
@@ -48,12 +65,12 @@ class HTML_sportsmanager_admin
} }
return $Spalte_Nr; return $Spalte_Nr;
} }
global $params; global $params;
?> ?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'> <div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'>
<a href="https://github.com/Deutscher-Tischfussballbund/" target="_blank"> <a href="https://github.com/Deutscher-Tischfussballbund/" target="_blank">
Sports Manager <?php echo SPORTS_MANAGER_VERSION; ?> </a> Sports Manager <?php echo self::getVersion(); ?> </a>
</div> </div>
<table> <table>
<tr> <tr>
@@ -4925,7 +4942,7 @@ class HTML_sportsmanager_admin
static function adminKategorien($kategorien): void static function adminKategorien($kategorien): void
{ {
global $params; global $params;
?> ?>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></div> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></div>
@@ -8729,11 +8746,11 @@ class HTML_sportsmanager_admin
<td nowrap <td nowrap
style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td> style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td>
<td nowrap align="center"> <td nowrap align="center">
<?php echo <?php echo
formatTimediff($row->termin_spiel, $row->ergebnis_vorgeschlagen, false) formatTimediff($row->termin_spiel, $row->ergebnis_vorgeschlagen, false)
. " / " . " / "
. formatTimediff($row->ergebnis_vorgeschlagen, $row->ergebnis_akzeptiert, false); . formatTimediff($row->ergebnis_vorgeschlagen, $row->ergebnis_akzeptiert, false);
?> ?>
</td> </td>
<td nowrap><small><a <td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_heimtausch&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_HOME_EXCHANGE'); ?></a></small> href="<?php echo SportsManagerURL('&task=admin_begegnung_heimtausch&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_HOME_EXCHANGE'); ?></a></small>