Compare commits
8 Commits
update2025
...
image
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aea858a1ef | ||
|
|
85c90e4657 | ||
|
|
840ecedbd0 | ||
|
|
916c3142d4 | ||
|
|
f9426679ea | ||
|
|
a68994d00b | ||
|
|
fcda568905 | ||
|
|
ac178e60e0 |
56
.gitea/workflows/docker-image.yml
Normal file
56
.gitea/workflows/docker-image.yml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
name: Build And Push Docker Image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "image"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
DOTNET_ROLL_FORWARD: Major
|
||||||
|
REGISTRY: git.beging.de
|
||||||
|
BASE_IMAGE: git.beging.de/troogs/fs-onboarding-server
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Setup .NET SDK
|
||||||
|
uses: actions/setup-dotnet@v5
|
||||||
|
with:
|
||||||
|
dotnet-version: "9.0.x"
|
||||||
|
|
||||||
|
- name: Publish server project
|
||||||
|
run: dotnet publish ./FoodsharingSiegen.Server/FoodsharingSiegen.Server.csproj -c Release -o ./Publish/Server
|
||||||
|
|
||||||
|
- name: Login to Gitea registry
|
||||||
|
run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "${{ env.REGISTRY }}" -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
|
||||||
|
|
||||||
|
- name: Determine next timestamp tag
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
TODAY="$(date -u +%Y%m%d)"
|
||||||
|
i=1
|
||||||
|
while docker manifest inspect "${BASE_IMAGE}:${TODAY}-${i}" > /dev/null 2>&1; do
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
DATE_TAG="${TODAY}-${i}"
|
||||||
|
echo "DATE_TAG=${DATE_TAG}" >> "$GITHUB_ENV"
|
||||||
|
echo "Using image tag: ${DATE_TAG}"
|
||||||
|
|
||||||
|
- name: Build docker image
|
||||||
|
run: |
|
||||||
|
docker build \
|
||||||
|
-f ./Docker/dockerfile.server \
|
||||||
|
-t "${{ env.BASE_IMAGE }}:latest" \
|
||||||
|
-t "${{ env.BASE_IMAGE }}:${{ env.DATE_TAG }}" \
|
||||||
|
.
|
||||||
|
|
||||||
|
- name: Push docker images
|
||||||
|
run: |
|
||||||
|
docker push "${{ env.BASE_IMAGE }}:latest"
|
||||||
|
docker push "${{ env.BASE_IMAGE }}:${{ env.DATE_TAG }}"
|
||||||
50
.gitea/workflows/test.yml
Normal file
50
.gitea/workflows/test.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
name: Build And Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*"
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag_name:
|
||||||
|
description: "Tag for the release (for example: v1.0.0)"
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
env:
|
||||||
|
RELEASE_TAG: ${{ github.event.inputs.tag_name || github.ref_name }}
|
||||||
|
DOTNET_ROLL_FORWARD: Major
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Setup .NET SDK
|
||||||
|
uses: actions/setup-dotnet@v5
|
||||||
|
with:
|
||||||
|
dotnet-version: "9.0.x"
|
||||||
|
|
||||||
|
- name: Restore dependencies
|
||||||
|
run: dotnet restore FoodsharingSiegen.sln
|
||||||
|
|
||||||
|
- name: Publish server build
|
||||||
|
run: dotnet publish ./FoodsharingSiegen.Server/FoodsharingSiegen.Server.csproj -c Release -o ./artifacts/publish
|
||||||
|
|
||||||
|
- name: Create zip package
|
||||||
|
run: |
|
||||||
|
cd artifacts
|
||||||
|
zip -r FoodsharingSiegen.Server-${{ env.RELEASE_TAG }}.zip publish
|
||||||
|
|
||||||
|
- name: Create release and upload artifact
|
||||||
|
uses: https://gitea.com/actions/gitea-release-action@v1
|
||||||
|
with:
|
||||||
|
files: artifacts/FoodsharingSiegen.Server-${{ env.RELEASE_TAG }}.zip
|
||||||
|
tag_name: ${{ env.RELEASE_TAG }}
|
||||||
|
name: Release ${{ env.RELEASE_TAG }}
|
||||||
|
target_commitish: ${{ github.sha }}
|
||||||
|
token: ${{ github.token }}
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ riderModule.iml
|
|||||||
/_ReSharper.Caches/
|
/_ReSharper.Caches/
|
||||||
|
|
||||||
Publish/
|
Publish/
|
||||||
|
app.db
|
||||||
19
.vscode/launch.json
vendored
Normal file
19
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Debug FoodsharingSiegen.Server",
|
||||||
|
"type": "dotnet",
|
||||||
|
"request": "launch",
|
||||||
|
"projectPath": "${workspaceFolder}/FoodsharingSiegen.Server/FoodsharingSiegen.Server.csproj",
|
||||||
|
"env": {
|
||||||
|
"DOTNET_ROLL_FORWARD": "Major"
|
||||||
|
},
|
||||||
|
"launchBrowser": true,
|
||||||
|
"serverReadyAction": {
|
||||||
|
"action": "openExternally",
|
||||||
|
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
53
.vscode/tasks.json
vendored
Normal file
53
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Watch FoodsharingSiegen.Server",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "dotnet watch --project ./FoodsharingSiegen.Server/FoodsharingSiegen.Server.csproj run",
|
||||||
|
"isBackground": true,
|
||||||
|
"problemMatcher": "$msCompile",
|
||||||
|
"options": {
|
||||||
|
"statusbar": {
|
||||||
|
"hide": false,
|
||||||
|
"label": "Watch Server",
|
||||||
|
"color": "#3a96ff",
|
||||||
|
"icon": {
|
||||||
|
"id": "eye"
|
||||||
|
},
|
||||||
|
"running": {
|
||||||
|
"color": "#f7df06",
|
||||||
|
"icon": {
|
||||||
|
"id": "loading~spin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Debug FoodsharingSiegen.Server",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "dotnet run --project ./FoodsharingSiegen.Server/FoodsharingSiegen.Server.csproj",
|
||||||
|
"problemMatcher": "$msCompile",
|
||||||
|
"options": {
|
||||||
|
"env": {
|
||||||
|
"DOTNET_ROLL_FORWARD": "Major"
|
||||||
|
},
|
||||||
|
"statusbar": {
|
||||||
|
"hide": false,
|
||||||
|
"label": "Debug Server",
|
||||||
|
"color": "#3a96ff",
|
||||||
|
"icon": {
|
||||||
|
"id": "debug-start"
|
||||||
|
},
|
||||||
|
"running": {
|
||||||
|
"color": "#f7df06",
|
||||||
|
"icon": {
|
||||||
|
"id": "loading~spin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -43,7 +43,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="_framework/blazor.server.js"></script>
|
<script src="_framework/blazor.server.js"></script>
|
||||||
<script src="_content/Blazorise/blazorise.js"></script>
|
|
||||||
<script src="_content/Blazorise.Material/blazorise.material.js?v=1.7.5.0"></script>
|
<script src="_content/Blazorise.Material/blazorise.material.js?v=1.7.5.0"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
1
FoodsharingSiegen.Server/wwwroot/buildinfo.txt
Normal file
1
FoodsharingSiegen.Server/wwwroot/buildinfo.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
20260410
|
||||||
@@ -28,7 +28,7 @@ namespace FoodsharingSiegen.Shared.Helper
|
|||||||
InteractionType.Verify => "Verifizierung",
|
InteractionType.Verify => "Verifizierung",
|
||||||
InteractionType.Complete => "Fertig",
|
InteractionType.Complete => "Fertig",
|
||||||
InteractionType.StepInBriefing => appSettings.Terms.StepInName ?? "StepIn",
|
InteractionType.StepInBriefing => appSettings.Terms.StepInName ?? "StepIn",
|
||||||
InteractionType.ReleasedForVerification => "Freigabe zum Freischalten",
|
InteractionType.ReleasedForVerification => "Freigabe Freischalten",
|
||||||
_ => type.ToString()
|
_ => type.ToString()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
53
Scripts/kill-port-56000.ps1
Normal file
53
Scripts/kill-port-56000.ps1
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
param(
|
||||||
|
[int]$Port = 56000
|
||||||
|
)
|
||||||
|
|
||||||
|
$killedAny = $false
|
||||||
|
|
||||||
|
# Try modern cmdlet first.
|
||||||
|
$connections = Get-NetTCPConnection -LocalPort $Port -State Listen -ErrorAction SilentlyContinue
|
||||||
|
if ($connections) {
|
||||||
|
$pids = $connections | Select-Object -ExpandProperty OwningProcess -Unique
|
||||||
|
foreach ($procId in $pids) {
|
||||||
|
try {
|
||||||
|
Stop-Process -Id $procId -Force -ErrorAction Stop
|
||||||
|
Write-Host "Stopped process $procId listening on port $Port."
|
||||||
|
$killedAny = $true
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Warning "Failed to stop process ${procId}: $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fallback for environments where Get-NetTCPConnection is unavailable.
|
||||||
|
if (-not $killedAny) {
|
||||||
|
$netstatLines = netstat -ano | Select-String ":$Port\s"
|
||||||
|
$listenLines = $netstatLines | Where-Object { $_.Line -match "LISTENING" }
|
||||||
|
|
||||||
|
$fallbackPids = @()
|
||||||
|
foreach ($line in $listenLines) {
|
||||||
|
$parts = ($line.Line -replace "\s+", " ").Trim().Split(" ")
|
||||||
|
if ($parts.Length -ge 5) {
|
||||||
|
$fallbackPids += $parts[-1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$fallbackPids = $fallbackPids | Sort-Object -Unique
|
||||||
|
foreach ($pidText in $fallbackPids) {
|
||||||
|
if ($pidText -match "^\d+$") {
|
||||||
|
try {
|
||||||
|
Stop-Process -Id ([int]$pidText) -Force -ErrorAction Stop
|
||||||
|
Write-Host "Stopped process $pidText listening on port $Port."
|
||||||
|
$killedAny = $true
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Warning "Failed to stop process ${pidText}: $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-not $killedAny) {
|
||||||
|
Write-Host "No listening process found on port $Port."
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user