blob: c76e7edd95727ecb2b283eb117905bee3095f0a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# Require : Cargo (Rust), ISCC (Inno Setup)
# Set location to script directory
$scriptPath = $MyInvocation.MyCommand.Path
$scriptDir = Split-Path $scriptPath -Parent
Set-Location $scriptDir
# Test core library
cargo test --manifest-path ..\VersionControl\Cargo.toml --workspace
if ($LASTEXITCODE -ne 0) {
Write-Warning "Core library tests failed. Aborting build."
exit 1
}
# Test workspace
cargo test --workspace
if ($LASTEXITCODE -ne 0) {
Write-Warning "Workspace tests failed. Aborting build."
exit 1
}
# Check if git worktree is clean
$gitStatus = git status --porcelain
if ($gitStatus) {
Write-Warning "Git worktree is not clean. Commit or stash changes before building."
exit 1
}
# Check for ISCC
$isccPath = Get-Command ISCC -ErrorAction SilentlyContinue
if (-not $isccPath) {
Write-Warning '"Inno Setup" not installed. (https://jrsoftware.org/isinfo.php)'
exit 1
}
# Build
$env:FORCE_BUILD=$(Get-Date -Format 'mmss')
cargo build --workspace --release
if ($LASTEXITCODE -ne 0) {
# Build failed
} else {
# Build succeeded
# Export
if (cargo run --manifest-path tools/build_helper/Cargo.toml --bin exporter release) {
Copy-Item -Path templates\compile_info.rs.template -Destination src\data\compile_info.rs -Force
ISCC /Q .\setup\windows\setup_jv_cli.iss
}
}
|