v0.4.1 : Phase 1 complete (17/17) - dashboard TUI (#33), favoris/notes/tags (#39), profils d'environnement (#40), completions dynamiques + man pages (#41), packaging officiel + CI (#42), self-update Gitea, state v3, 212 tests
release / linux (push) Failing after 23s
release / windows (push) Canceled after 0s
release / macos (push) Canceled after 0s

This commit is contained in:
2026-08-17 10:50:13 -04:00
parent 4f4cd034b2
commit 56732d672b
93 changed files with 9412 additions and 1270 deletions
+20
View File
@@ -0,0 +1,20 @@
# Builds the release artefacts for the current platform (Windows):
# target/release/am.exe -> dist/am-windows-x86_64.zip
# Also prints the sha256 of every archive (for the packaging manifests).
param([switch]$NoTest)
$ErrorActionPreference = "Stop"
cargo build --release --locked
if (-not $NoTest) { cargo test --release --locked }
New-Item -ItemType Directory -Force dist | Out-Null
$zip = "dist/am-windows-x86_64.zip"
Remove-Item $zip -ErrorAction SilentlyContinue
Compress-Archive -Path target/release/am.exe -DestinationPath $zip
Write-Host ""
Write-Host "Artefacts:"
Get-ChildItem dist | ForEach-Object {
$hash = (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower()
Write-Host (" {0,-32} {1} sha256:{2}" -f $_.Name, $_.Length, $hash)
}
+50
View File
@@ -0,0 +1,50 @@
# Renders the packaging templates (scoop, winget, homebrew, rpm) with the
# version and the sha256 of every release archive.
# Usage: scripts/render-manifests.ps1 -Version 0.4.1 [-DistDir dist]
param(
[Parameter(Mandatory = $true)][string]$Version,
[string]$DistDir = "dist"
)
$ErrorActionPreference = "Stop"
function Get-Sha([string]$file) {
$p = Join-Path $DistDir $file
if (-not (Test-Path $p)) {
Write-Warning "missing $p - placeholder 0000... (build it or wait for the CI runner)"
return "0000000000000000000000000000000000000000000000000000000000000000"
}
(Get-FileHash $p -Algorithm SHA256).Hash.ToLower()
}
$vars = [ordered]@{
"{{VERSION}}" = $Version
"{{SHA256_WINDOWS}}" = Get-Sha "am-windows-x86_64.zip"
"{{SHA256_LINUX_X86_64}}" = Get-Sha "am-linux-x86_64.tar.gz"
"{{SHA256_LINUX_AARCH64}}" = Get-Sha "am-linux-aarch64.tar.gz"
"{{SHA256_MACOS_X86_64}}" = Get-Sha "am-macos-x86_64.tar.gz"
"{{SHA256_MACOS_AARCH64}}" = Get-Sha "am-macos-aarch64.tar.gz"
}
$targets = @(
@{ Src = "packaging/scoop/am.json"; Dst = "dist/scoop/am.json" },
@{ Src = "packaging/winget/agent-manager.installer.yaml"; Dst = "dist/winget/agent-manager.installer.yaml" },
@{ Src = "packaging/winget/agent-manager.locale.en-US.yaml"; Dst = "dist/winget/agent-manager.locale.en-US.yaml" },
@{ Src = "packaging/winget/agent-manager.yaml"; Dst = "dist/winget/agent-manager.yaml" },
@{ Src = "packaging/homebrew/am.rb"; Dst = "dist/homebrew/am.rb" },
@{ Src = "packaging/rpm/am.spec"; Dst = "dist/rpm/am.spec" }
)
foreach ($t in $targets) {
$text = Get-Content $t.Src -Raw
foreach ($k in $vars.Keys) { $text = $text.Replace($k, $vars[$k]) }
New-Item -ItemType Directory -Force (Split-Path $t.Dst) | Out-Null
Set-Content -Path $t.Dst -Value $text -NoNewline -Encoding utf8
Write-Host "rendered $($t.Dst)"
}
Write-Host ""
Write-Host "Manifests rendus dans dist/. Puis :"
Write-Host " - scoop : scoop install dist/scoop/am.json (ou ajoutez-le a votre bucket)"
Write-Host " - winget : soumettez dist/winget/*.yaml a microsoft/winget-pkgs"
Write-Host " - homebrew : servez dist/homebrew/am.rb via un tap, ou soumettez a homebrew/core"
Write-Host " - rpm : copiez dist/rpm/am.spec + dist/am-linux-x86_64.tar.gz dans ~/rpmbuild/{SPECS,SOURCES} puis rpmbuild -bb"
Write-Host " - deb : packaging/deb/make-deb.sh $Version"