windows: Add update-workspace-hack.ps1 script (#28219)

Release Notes:

- N/A
This commit is contained in:
张小白 2025-04-07 21:26:26 +08:00 committed by GitHub
parent 656302ee4c
commit d60dbbc791
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 38 additions and 2 deletions

View file

@ -131,13 +131,13 @@ jobs:
- name: Check workspace-hack Cargo.toml is up-to-date
run: |
cargo hakari generate --diff || {
echo "To fix, run script/update-workspace-hack";
echo "To fix, run script/update-workspace-hack or script/update-workspace-hack.ps1";
false
}
- name: Check all crates depend on workspace-hack
run: |
cargo hakari manage-deps --dry-run || {
echo "To fix, run script/update-workspace-hack"
echo "To fix, run script/update-workspace-hack or script/update-workspace-hack.ps1"
false
}

View file

@ -0,0 +1,36 @@
$ErrorActionPreference = "Stop"
$HAKARI_VERSION = "0.9"
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path
Set-Location (Split-Path -Parent $scriptPath)
$hakariInstalled = $false
try {
$versionOutput = cargo hakari --version 2>&1
if ($versionOutput -match "cargo-hakari $HAKARI_VERSION") {
$hakariInstalled = $true
}
}
catch {
$hakariInstalled = $false
}
if (-not $hakariInstalled) {
Write-Host "Installing cargo-hakari@^$HAKARI_VERSION..."
cargo install "cargo-hakari@^$HAKARI_VERSION"
if ($LASTEXITCODE -ne 0) {
throw "Failed to install cargo-hakari@^$HAKARI_VERSION"
}
}
else {
Write-Host "cargo-hakari@^$HAKARI_VERSION is already installed."
}
# update the workspace-hack crate
cargo hakari generate
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
# make sure workspace-hack is added as a dep for all crates in the workspace
cargo hakari manage-deps
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }