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
This commit is contained in:
@@ -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)
|
||||
}
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user