feat: add build.ps1 script.
All checks were successful
Build blog docker image / Build-Blog-Image (push) Successful in 3m39s

This commit is contained in:
2026-01-04 17:21:52 +08:00
parent 56374a4e6b
commit c050d1b790
4 changed files with 92 additions and 13 deletions

View File

@@ -12,16 +12,12 @@ jobs:
with:
lfs: true
- name: Build project.
run: |
cd YaeBlog
dotnet publish
- name: Build docker image.
run: |
proxy
podman pull mcr.microsoft.com/dotnet/aspnet:10.0
unproxy
cd YaeBlog
podman build . -t ccr.ccs.tencentyun.com/jackfiled/blog --build-arg COMMIT_ID=$(git rev-parse --short=10 HEAD)
pwsh build.ps1 build
- name: Workaround to make sure podman-login working.
run: |
mkdir /root/.docker

View File

@@ -18,6 +18,6 @@
<PropertyGroup>
<ClientAssetsRestoreCommand>pnpm install</ClientAssetsRestoreCommand>
<ClientAssetsBuildCommand>pwsh build-tailwind.ps1</ClientAssetsBuildCommand>
<ClientAssetsBuildCommand>pwsh build.ps1 tailwind</ClientAssetsBuildCommand>
</PropertyGroup>
</Project>

View File

@@ -1,7 +0,0 @@
[cmdletbinding()]
param(
[string]$output = "wwwroot"
)
Write-Output "Output directory: $output"
pnpm tailwindcss -i wwwroot/tailwind.css -o $output/tailwind.g.css

90
YaeBlog/build.ps1 Executable file
View File

@@ -0,0 +1,90 @@
#!pwsh
[cmdletbinding()]
param(
[Parameter(Mandatory = $true, Position = 0, HelpMessage = "Specify the build target")]
[ValidateSet("tailwind", "watch", "publish", "compress", "build")]
[string]$Target,
[string]$Output = "wwwroot",
[string]$Essay,
[switch]$Compress
)
begin {
Write-Host "Building $Target..."
if ($Target -eq "publish")
{
if ($Essay -eq "")
{
Write-Error "No publish target, please add with --essay argument."
exit 1
}
}
}
process {
function Compress-Image
{
Write-Host "Compress image assets..."
dotnet run -- compress --dry-run
$confirm = Read-Host "Really compress images? (y/n)"
if ($confirm -notmatch "^[yY]$")
{
Write-Host "Not compress images."
return
}
Write-Host "Do compress image..."
dotnet run -- compress
dotnet run -- scan
$confirm = Read-Host "Really delete unused images? (y/n)"
if ($confirm -notmatch "^[yY]$")
{
Write-Host "Not delete images."
return
}
Write-Host "Do delete unused images.."
dotnet run -- scan --rm
}
function Build-Image
{
$commitId = git rev-parse --short=10 HEAD
dotnet publish
podman build . -t ccr.ccs.tencentyun.com/jackfiled/blog --build-arg COMMIT_ID=$commitId
}
switch ($Target)
{
"tailwind" {
Write-Host "Build tailwind css into $Output."
pnpm tailwindcss -i wwwroot/tailwind.css -o $Output/tailwind.g.css
break
}
"watch" {
dotnet run -- watch
break
}
"publish" {
Write-Host "Publish essay $Essay..."
dotnet run -- publish $Essay
if ($Compress)
{
Compress-Image
}
break
}
"compress" {
Compress-Image
break
}
"build" {
Build-Image
break
}
}
}