Compare commits

...
Author SHA1 Message Date
MarvinF 3ac118803c Merge pull request #293 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-07-16 23:18:27 +02:00
MarvinF ea174cbd69 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-07-16 23:18:03 +02:00
MarvinF 4838b05d5f Merge pull request #292 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-07-16 23:17:09 +02:00
MarvinF 541af8fb7f Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-07-16 23:16:50 +02:00
MarvinF cc92b938be Merge pull request #291 from Deutscher-Tischfussballbund/sportsmanager2-issue290
Bei Teilnehmerzahl 1 oder weniger eines Ranglistenturnieres werden oh…
2026-07-16 23:14:36 +02:00
Jürgen Meyer 4c21d66fbe Bei Teilnehmerzahl 1 oder weniger eines Ranglistenturnieres werden ohne weitere Berechnung 0 Punkte vergeben. 2026-07-16 14:27:34 +02:00
MarvinF afb89dba6e Rename dev_preview to dev_preview.yml 2026-06-16 21:07:55 +02:00
MarvinF c4d599834a Create dev_preview 2026-06-16 21:06:47 +02:00
MarvinF 4368d837c0 Merge pull request #285 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-05-13 00:07:16 +02:00
MarvinF 19037d0729 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-05-13 00:06:44 +02:00
MarvinF bfc65d6030 Merge pull request #284 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-05-13 00:05:08 +02:00
MarvinF 7d47b3ed24 Merge pull request #281 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-04-14 19:10:16 +02:00
2 changed files with 90 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
# Builds the codebase and publishes a rolling dev-preview release (no version bump).
# The release uses a fixed tag "dev-preview" so each run replaces the previous one.
name: Sportsmanager Dev Preview
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to build'
required: true
default: 'sportsmanager2-prod'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install npm dependencies
run: npm ci
- name: Run build script
run: npm run release
- name: Delete existing dev-preview release (if any)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
run: |
release_id=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO/releases/tags/dev-preview" \
| jq -r '.id // empty')
if [ -n "$release_id" ]; then
curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO/releases/$release_id"
echo "Deleted existing dev-preview release (ID: $release_id)"
else
echo "No existing dev-preview release found"
fi
- name: Delete existing dev-preview tag (if any)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
run: |
status=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO/git/refs/tags/dev-preview")
if [ "$status" = "200" ]; then
curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO/git/refs/tags/dev-preview"
echo "Deleted existing dev-preview tag"
else
echo "No existing dev-preview tag found"
fi
- name: Publish dev-preview release
uses: softprops/action-gh-release@v2
with:
tag_name: dev-preview
name: "Dev Preview (${{ github.run_number }})"
body: |
Automated dev preview build from branch `${{ inputs.branch }}`.
Commit: ${{ github.sha }}
Run: ${{ github.run_number }}
> This is a temporary preview release and will be replaced on the next run.
files: package/packages/com_sportsmanager.zip
draft: false
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -19,11 +19,17 @@ require_once JPATH_SITE . '/components/com_sportsmanager/database/init.php';
/** @noinspection PhpUnused */ /** @noinspection PhpUnused */
function mathParserVerteilung($rohpunkte, $platz, $teilnehmer, $multiplikator) { function mathParserVerteilung($rohpunkte, $platz, $teilnehmer, $multiplikator) {
if ($teilnehmer <= 1){
return 0;
}
return max(round($multiplikator * round(((($rohpunkte - 1) * (-log($platz / $teilnehmer) * (1 - ($platz / $teilnehmer)))) / (-log(1 / $teilnehmer) * (1 - (1 / $teilnehmer)))) + 1)), 1); return max(round($multiplikator * round(((($rohpunkte - 1) * (-log($platz / $teilnehmer) * (1 - ($platz / $teilnehmer)))) / (-log(1 / $teilnehmer) * (1 - (1 / $teilnehmer)))) + 1)), 1);
} }
/** @noinspection PhpUnused */ /** @noinspection PhpUnused */
function mathParserVerteilungR($rohpunkte, $platz, $teilnehmer, $multiplikator) { function mathParserVerteilungR($rohpunkte, $platz, $teilnehmer, $multiplikator) {
if ($teilnehmer <= 1){
return 0;
}
return max(round(((($multiplikator * $rohpunkte - 1) * (-log($platz / $teilnehmer) * (1 - ($platz / $teilnehmer)))) / (-log(1 / $teilnehmer) * (1 - (1 / $teilnehmer)))) + 1), 1); return max(round(((($multiplikator * $rohpunkte - 1) * (-log($platz / $teilnehmer) * (1 - ($platz / $teilnehmer)))) / (-log(1 / $teilnehmer) * (1 - (1 / $teilnehmer)))) + 1), 1);
} }