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
|
||||
```
|
||||
|
||||
### 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
|
||||
|
||||
```
|
||||
|
||||
+3
-4
@@ -72,6 +72,8 @@ begin
|
||||
end;
|
||||
|
||||
function InitializeSetup(): Boolean;
|
||||
var
|
||||
ErrorCode: Integer;
|
||||
begin
|
||||
Result := True;
|
||||
|
||||
@@ -81,11 +83,8 @@ begin
|
||||
'Soll die Download-Seite geoeffnet werden?',
|
||||
mbConfirmation, MB_YESNO) = IDYES then
|
||||
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;
|
||||
Result := False;
|
||||
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|<FileVersion>.*</FileVersion>|<FileVersion>${VERSION}</FileVersion>|g" "$PROJECT"
|
||||
|
||||
# AboutForm.cs
|
||||
sed -i "s|Version [0-9.]*|Version ${VERSION}|g" "$ABOUT_FORM"
|
||||
# AboutForm.cs - nur den Text im String-Literal ersetzen, nicht Variablennamen
|
||||
sed -i "s|\"Version [0-9.]*\"|\"Version ${VERSION}\"|g" "$ABOUT_FORM"
|
||||
|
||||
# Inno Setup
|
||||
sed -i "s|#define MyAppVersion \".*\"|#define MyAppVersion \"${VERSION}\"|g" "$INNO_SCRIPT"
|
||||
@@ -148,7 +148,7 @@ echo ""
|
||||
echo "[4/7] Erstelle Installer mit Docker..."
|
||||
|
||||
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"
|
||||
if [ ! -f "$SETUP_FILE" ]; then
|
||||
|
||||
Reference in New Issue
Block a user