Compare commits
6 Commits
b1658c8d3c
...
v0.0.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 41c690f8c2 | |||
| 50240ee0f3 | |||
| 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
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
+6
-7
@@ -2,7 +2,7 @@
|
|||||||
; Erfordert Inno Setup 6.x (https://jrsoftware.org/isinfo.php)
|
; Erfordert Inno Setup 6.x (https://jrsoftware.org/isinfo.php)
|
||||||
|
|
||||||
#define MyAppName "Starface Outlook Sync"
|
#define MyAppName "Starface Outlook Sync"
|
||||||
#define MyAppVersion "0.0.0.1"
|
#define MyAppVersion "0.0.0.2"
|
||||||
#define MyAppPublisher "HackerSoft - Hacker-Net Telekommunikation"
|
#define MyAppPublisher "HackerSoft - Hacker-Net Telekommunikation"
|
||||||
#define MyAppURL "https://www.hacker-net.de"
|
#define MyAppURL "https://www.hacker-net.de"
|
||||||
#define MyAppExeName "StarfaceOutlookSync.exe"
|
#define MyAppExeName "StarfaceOutlookSync.exe"
|
||||||
@@ -44,8 +44,8 @@ Name: "{group}\{#MyAppName} deinstallieren"; Filename: "{uninstallexe}"
|
|||||||
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||||
|
|
||||||
[Registry]
|
[Registry]
|
||||||
; Autostart
|
; Autostart fuer alle Benutzer (HKLM)
|
||||||
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "StarfaceOutlookSync"; ValueData: """{app}\{#MyAppExeName}"""; Flags: uninsdeletevalue; Tasks: autostart
|
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "StarfaceOutlookSync"; ValueData: """{app}\{#MyAppExeName}"""; Flags: uninsdeletevalue; Tasks: autostart
|
||||||
|
|
||||||
[Run]
|
[Run]
|
||||||
Filename: "{app}\{#MyAppExeName}"; Description: "{#MyAppName} jetzt starten"; Flags: nowait postinstall skipifsilent
|
Filename: "{app}\{#MyAppExeName}"; Description: "{#MyAppName} jetzt starten"; Flags: nowait postinstall skipifsilent
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
<AssemblyTitle>Starface Outlook Sync</AssemblyTitle>
|
<AssemblyTitle>Starface Outlook Sync</AssemblyTitle>
|
||||||
<Company>HackerSoft - Hacker-Net Telekommunikation</Company>
|
<Company>HackerSoft - Hacker-Net Telekommunikation</Company>
|
||||||
<Product>Starface Outlook Sync</Product>
|
<Product>Starface Outlook Sync</Product>
|
||||||
<Version>0.0.0.1</Version>
|
<Version>0.0.0.2</Version>
|
||||||
<AssemblyVersion>0.0.0.1</AssemblyVersion>
|
<AssemblyVersion>0.0.0.2</AssemblyVersion>
|
||||||
<FileVersion>0.0.0.1</FileVersion>
|
<FileVersion>0.0.0.2</FileVersion>
|
||||||
<Description>Synchronisiert Outlook-Kontakte mit Starface Telefonanlage</Description>
|
<Description>Synchronisiert Outlook-Kontakte mit Starface Telefonanlage</Description>
|
||||||
<Copyright>Stefan Hacker - HackerSoft</Copyright>
|
<Copyright>Stefan Hacker - HackerSoft</Copyright>
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace StarfaceOutlookSync.UI
|
|||||||
|
|
||||||
var lblVersion = new Label
|
var lblVersion = new Label
|
||||||
{
|
{
|
||||||
Text = "Version 0.0.0.1",
|
Text = "Version 0.0.0.2",
|
||||||
Left = 0, Top = 56, Width = 340, Height = 20,
|
Left = 0, Top = 56, Width = 340, Height = 20,
|
||||||
TextAlign = ContentAlignment.MiddleCenter,
|
TextAlign = ContentAlignment.MiddleCenter,
|
||||||
ForeColor = Color.Gray
|
ForeColor = Color.Gray
|
||||||
|
|||||||
Reference in New Issue
Block a user