Compare commits
4 Commits
b1658c8d3c
...
v0.0.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| d3b28c0dcc | |||
| abd52b351a | |||
| 8ac4c12b46 | |||
| 574c1923f9 |
@@ -129,6 +129,42 @@ wine ~/Downloads/innosetup-6.x.exe
|
|||||||
wine "$HOME/.wine/drive_c/Program Files (x86)/Inno Setup 6/ISCC.exe" installer/setup.iss
|
wine "$HOME/.wine/drive_c/Program Files (x86)/Inno Setup 6/ISCC.exe" installer/setup.iss
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Release erstellen
|
||||||
|
|
||||||
|
Das Release-Script automatisiert den kompletten Release-Prozess:
|
||||||
|
Versionsnummer aktualisieren, bauen, Installer erstellen, Git Tag + Push
|
||||||
|
und Gitea Release mit Setup-EXE als Download hochladen.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./release.sh <version> ["beschreibung"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Beispiele:
|
||||||
|
```bash
|
||||||
|
# Release mit Standard-Beschreibung
|
||||||
|
./release.sh 0.1.0.0
|
||||||
|
|
||||||
|
# Release mit eigener Beschreibung
|
||||||
|
./release.sh 0.2.0.0 "Neues Feature: Auto-Sync"
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Script fragt beim Start nach Gitea-Benutzername und Kennwort
|
||||||
|
und fuehrt dann folgende Schritte automatisch aus:
|
||||||
|
|
||||||
|
1. Prueft Voraussetzungen (dotnet, docker, curl, sauberes git)
|
||||||
|
2. Aktualisiert Versionsnummer in `.csproj`, `AboutForm.cs` und `setup.iss`
|
||||||
|
3. Baut das Projekt (`dotnet build -c Release`)
|
||||||
|
4. Erstellt den Installer via Docker (`amake/innosetup`)
|
||||||
|
5. Git Commit + Tag (`vX.X.X.X`)
|
||||||
|
6. Push zu Gitea (main + tag)
|
||||||
|
7. Erstellt Gitea Release mit Setup-EXE als Download-Anhang
|
||||||
|
|
||||||
|
Voraussetzungen:
|
||||||
|
- .NET 8 SDK
|
||||||
|
- Docker
|
||||||
|
- curl
|
||||||
|
- Gitea-Account mit Push-Rechten auf das Repository
|
||||||
|
|
||||||
## Projektstruktur
|
## Projektstruktur
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
+3
-4
@@ -72,6 +72,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function InitializeSetup(): Boolean;
|
function InitializeSetup(): Boolean;
|
||||||
|
var
|
||||||
|
ErrorCode: Integer;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
|
|
||||||
@@ -81,11 +83,8 @@ begin
|
|||||||
'Soll die Download-Seite geoeffnet werden?',
|
'Soll die Download-Seite geoeffnet werden?',
|
||||||
mbConfirmation, MB_YESNO) = IDYES then
|
mbConfirmation, MB_YESNO) = IDYES then
|
||||||
begin
|
begin
|
||||||
ShellExec('open', 'https://dotnet.microsoft.com/download/dotnet/8.0/runtime', '', '', SW_SHOWNORMAL, ewNoWait, ResultCode);
|
ShellExec('open', 'https://dotnet.microsoft.com/download/dotnet/8.0/runtime', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
|
||||||
end;
|
end;
|
||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
|
||||||
ResultCode: Integer;
|
|
||||||
|
|||||||
+3
-3
@@ -122,8 +122,8 @@ sed -i "s|<Version>.*</Version>|<Version>${VERSION}</Version>|g" "$PROJECT"
|
|||||||
sed -i "s|<AssemblyVersion>.*</AssemblyVersion>|<AssemblyVersion>${VERSION}</AssemblyVersion>|g" "$PROJECT"
|
sed -i "s|<AssemblyVersion>.*</AssemblyVersion>|<AssemblyVersion>${VERSION}</AssemblyVersion>|g" "$PROJECT"
|
||||||
sed -i "s|<FileVersion>.*</FileVersion>|<FileVersion>${VERSION}</FileVersion>|g" "$PROJECT"
|
sed -i "s|<FileVersion>.*</FileVersion>|<FileVersion>${VERSION}</FileVersion>|g" "$PROJECT"
|
||||||
|
|
||||||
# AboutForm.cs
|
# AboutForm.cs - nur den Text im String-Literal ersetzen, nicht Variablennamen
|
||||||
sed -i "s|Version [0-9.]*|Version ${VERSION}|g" "$ABOUT_FORM"
|
sed -i "s|\"Version [0-9.]*\"|\"Version ${VERSION}\"|g" "$ABOUT_FORM"
|
||||||
|
|
||||||
# Inno Setup
|
# Inno Setup
|
||||||
sed -i "s|#define MyAppVersion \".*\"|#define MyAppVersion \"${VERSION}\"|g" "$INNO_SCRIPT"
|
sed -i "s|#define MyAppVersion \".*\"|#define MyAppVersion \"${VERSION}\"|g" "$INNO_SCRIPT"
|
||||||
@@ -148,7 +148,7 @@ echo ""
|
|||||||
echo "[4/7] Erstelle Installer mit Docker..."
|
echo "[4/7] Erstelle Installer mit Docker..."
|
||||||
|
|
||||||
mkdir -p "$DIST_DIR"
|
mkdir -p "$DIST_DIR"
|
||||||
docker run --rm -v "$PWD:/work" amake/innosetup "$INNO_SCRIPT"
|
sudo docker run --rm -v "$PWD:/work" amake/innosetup "$INNO_SCRIPT"
|
||||||
|
|
||||||
SETUP_FILE="${DIST_DIR}/StarfaceOutlookSync_Setup_${VERSION}.exe"
|
SETUP_FILE="${DIST_DIR}/StarfaceOutlookSync_Setup_${VERSION}.exe"
|
||||||
if [ ! -f "$SETUP_FILE" ]; then
|
if [ ! -f "$SETUP_FILE" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user