mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 10:53:17 +00:00
Windows Build and release scripts (#220)
This commit is contained in:
parent
55bfb9fe3b
commit
6e77d5027f
50
Buildscripts/build.ps1
Normal file
50
Buildscripts/build.ps1
Normal file
@ -0,0 +1,50 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Usage: build.ps1 [boardname]
|
||||
Example: build.ps1 lilygo-tdeck
|
||||
Description: Makes a clean build for the specified board.
|
||||
#>
|
||||
|
||||
function EchoNewPhase {
|
||||
param (
|
||||
[string]$message
|
||||
)
|
||||
Write-Host "⏳ $message" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
function FatalError {
|
||||
param (
|
||||
[string]$message
|
||||
)
|
||||
Write-Host "⚠️ $message" -ForegroundColor Red
|
||||
exit 0
|
||||
}
|
||||
|
||||
$sdkconfig_file = "sdkconfig.board.$($args[0])"
|
||||
|
||||
if ($args.Count -lt 1) {
|
||||
FatalError "Must pass board name as first argument. (e.g. lilygo_tdeck)"
|
||||
}
|
||||
|
||||
if (-Not (Test-Path $sdkconfig_file)) {
|
||||
FatalError "Board not found: $sdkconfig_file"
|
||||
}
|
||||
|
||||
EchoNewPhase "Cleaning build folder"
|
||||
$BuildFolder = "build"
|
||||
if (Test-Path $BuildFolder) {
|
||||
Remove-Item -Path $BuildFolder -Recurse -Force
|
||||
EchoNewPhase "Build folder deleted"
|
||||
} else {
|
||||
EchoNewPhase "Build folder doesn't exist."
|
||||
}
|
||||
|
||||
EchoNewPhase "Building $sdkconfig_file"
|
||||
|
||||
Copy-Item -Path $sdkconfig_file -Destination "sdkconfig"
|
||||
|
||||
try {
|
||||
& idf.py build
|
||||
} catch {
|
||||
FatalError "Failed to build esp32s3 SDK"
|
||||
}
|
||||
79
Buildscripts/release.ps1
Normal file
79
Buildscripts/release.ps1
Normal file
@ -0,0 +1,79 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Releases the current build labeled as a release for the specified board name.
|
||||
|
||||
.DESCRIPTION
|
||||
Usage: .\release.ps1 [boardname]
|
||||
Example: .\release.ps1 lilygo-tdeck
|
||||
|
||||
.PARAMETER board
|
||||
The name of the board to release.
|
||||
#>
|
||||
|
||||
function EchoNewPhase {
|
||||
param(
|
||||
[string]$Message
|
||||
)
|
||||
Write-Host "⏳ $message" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
function FatalError {
|
||||
param(
|
||||
[string]$Message
|
||||
)
|
||||
Write-Host "⚠️ $message" -ForegroundColor Red
|
||||
exit 0
|
||||
}
|
||||
|
||||
function Release-Symbols {
|
||||
param(
|
||||
[string]$TargetPath
|
||||
)
|
||||
|
||||
EchoNewPhase "Making symbols release at '$TargetPath'"
|
||||
New-Item -ItemType Directory -Path $TargetPath -Force | Out-Null
|
||||
Copy-Item -Path "build\*.elf" -Destination $TargetPath -Force
|
||||
}
|
||||
|
||||
function Release-Build {
|
||||
param(
|
||||
[string]$TargetPath
|
||||
)
|
||||
|
||||
EchoNewPhase "Making release at '$TargetPath'"
|
||||
|
||||
$binPath = Join-Path $TargetPath "Binaries"
|
||||
$partitionTablePath = Join-Path $binPath "partition_table"
|
||||
$bootloaderPath = Join-Path $binPath "bootloader"
|
||||
|
||||
New-Item -ItemType Directory -Path $binPath -Force | Out-Null
|
||||
New-Item -ItemType Directory -Path $partitionTablePath -Force | Out-Null
|
||||
New-Item -ItemType Directory -Path $bootloaderPath -Force | Out-Null
|
||||
|
||||
Copy-Item -Path "build\*.bin" -Destination $binPath -Force
|
||||
Copy-Item -Path "build\bootloader\*.bin" -Destination $bootloaderPath -Force
|
||||
Copy-Item -Path "build\partition_table\*.bin" -Destination $partitionTablePath -Force
|
||||
Copy-Item -Path "build\flash_args" -Destination $binPath -Force
|
||||
Copy-Item -Path "build\flasher_args.json" -Destination $binPath -Force
|
||||
|
||||
Copy-Item -Path "Buildscripts\Flashing\*" -Destination $TargetPath -Force
|
||||
}
|
||||
|
||||
# Script start
|
||||
$releasePath = "release"
|
||||
$sdkconfig_file = "sdkconfig.board.$($args[0])"
|
||||
$board = "$($args[0])"
|
||||
|
||||
if ($args.Count -lt 1) {
|
||||
FatalError "Must pass board name as first argument. (e.g. lilygo_tdeck)"
|
||||
}
|
||||
|
||||
if (-not (Test-Path $sdkconfig_file)) {
|
||||
FatalError "Board not found: $sdkconfig_file"
|
||||
}
|
||||
|
||||
$targetReleasePath = Join-Path $releasePath "Tactility-$board"
|
||||
$targetSymbolsPath = Join-Path $releasePath "Tactility-$board-symbols"
|
||||
|
||||
Release-Build $targetReleasePath
|
||||
Release-Symbols $targetSymbolsPath
|
||||
Loading…
x
Reference in New Issue
Block a user