Skip to content

Commit 201af63

Browse files
fix: update version handling in CI workflow to ensure proper semantic versioning and improve variable naming for clarity
1 parent 7797820 commit 201af63

1 file changed

Lines changed: 16 additions & 10 deletions

File tree

.github/workflows/release.yml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,11 @@ jobs:
4747
shell: pwsh
4848
run: |
4949
$ver = "${env:RELEASE_VERSION}"
50-
# Flutter pubspec version (keep build number stable for CI)
50+
# Flutter pubspec / Inno require semver x.y.z; branch names (e.g. main) are invalid.
51+
$pubVer = if ($ver -match '^(\d+\.\d+\.\d+)') { $Matches[1] } else { "0.0.0" }
52+
# Flutter pubspec version (build number from CI run)
5153
(Get-Content "dashboard/pubspec.yaml") `
52-
-replace '^version:\s*.+$', "version: $ver+${env:GITHUB_RUN_NUMBER}" `
54+
-replace '^version:\s*.+$', "version: $pubVer+${env:GITHUB_RUN_NUMBER}" `
5355
| Set-Content "dashboard/pubspec.yaml"
5456
# Engine version metadata
5557
(Get-Content "engine/__init__.py") `
@@ -60,7 +62,7 @@ jobs:
6062
| Set-Content "engine/api/server.py"
6163
# Inno Setup version + output name
6264
(Get-Content "installer/sentracore.iss") `
63-
-replace '^AppVersion=.*$', "AppVersion=$ver" `
65+
-replace '^AppVersion=.*$', "AppVersion=$pubVer" `
6466
-replace '^OutputBaseFilename=.*$', "OutputBaseFilename=SentraCore_Setup_v$ver" `
6567
| Set-Content "installer/sentracore.iss"
6668
@@ -121,9 +123,10 @@ jobs:
121123
try {
122124
$cfgDisk = $null
123125
try { $cfgDisk = Get-Content "$cfgFull" -Raw | ConvertFrom-Json } catch {}
124-
$host = if ($cfgDisk -and $cfgDisk.host) { $cfgDisk.host } else { "127.0.0.1" }
126+
# Never use $host — it shadows PowerShell's automatic $Host and breaks this loop.
127+
$connectHost = if ($cfgDisk -and $cfgDisk.host) { $cfgDisk.host } else { "127.0.0.1" }
125128
$port = if ($cfgDisk -and $cfgDisk.port) { [int]$cfgDisk.port } else { $startPort }
126-
$r = Invoke-WebRequest -UseBasicParsing -TimeoutSec 2 "http://$host`:$port/api/v1/health"
129+
$r = Invoke-WebRequest -UseBasicParsing -TimeoutSec 2 "http://${connectHost}:${port}/api/v1/health"
127130
if ($r.StatusCode -eq 200) { $ok = $true; break }
128131
} catch {}
129132
Start-Sleep -Milliseconds 500
@@ -196,13 +199,14 @@ jobs:
196199

197200
- name: Inject version into project files
198201
run: |
199-
VER="${RELEASE_VERSION}"
200202
python - <<'PY'
201203
import os, re, pathlib
202204
ver = os.environ["RELEASE_VERSION"]
203-
run = os.environ.get("GITHUB_RUN_NUMBER","1")
205+
run = os.environ.get("GITHUB_RUN_NUMBER", "1")
206+
m = re.match(r"^(\d+\.\d+\.\d+)", ver.strip())
207+
pub_ver = m.group(1) if m else "0.0.0"
204208
p = pathlib.Path("dashboard/pubspec.yaml")
205-
p.write_text(re.sub(r"^version:\s*.+$", f"version: {ver}+{run}", p.read_text(), flags=re.M))
209+
p.write_text(re.sub(r"^version:\s*.+$", f"version: {pub_ver}+{run}", p.read_text(), flags=re.M))
206210
init = pathlib.Path("engine/__init__.py")
207211
init.write_text(re.sub(r'__version__\s*=\s*\"[^\"]+\"', f'__version__ = \"{ver}\"', init.read_text()))
208212
srv = pathlib.Path("engine/api/server.py")
@@ -347,9 +351,11 @@ jobs:
347351
python - <<'PY'
348352
import os, re, pathlib
349353
ver = os.environ["RELEASE_VERSION"]
350-
run = os.environ.get("GITHUB_RUN_NUMBER","1")
354+
run = os.environ.get("GITHUB_RUN_NUMBER", "1")
355+
m = re.match(r"^(\d+\.\d+\.\d+)", ver.strip())
356+
pub_ver = m.group(1) if m else "0.0.0"
351357
p = pathlib.Path("dashboard/pubspec.yaml")
352-
p.write_text(re.sub(r"^version:\s*.+$", f"version: {ver}+{run}", p.read_text(), flags=re.M))
358+
p.write_text(re.sub(r"^version:\s*.+$", f"version: {pub_ver}+{run}", p.read_text(), flags=re.M))
353359
init = pathlib.Path("engine/__init__.py")
354360
init.write_text(re.sub(r'__version__\s*=\s*\"[^\"]+\"', f'__version__ = \"{ver}\"', init.read_text()))
355361
srv = pathlib.Path("engine/api/server.py")

0 commit comments

Comments
 (0)