diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index ecc1cd8..fe5c0ab 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -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 diff --git a/YaeBlog/YaeBlog.csproj b/YaeBlog/YaeBlog.csproj index 6a6d8a7..642cf90 100644 --- a/YaeBlog/YaeBlog.csproj +++ b/YaeBlog/YaeBlog.csproj @@ -18,6 +18,6 @@ pnpm install - pwsh build-tailwind.ps1 + pwsh build.ps1 tailwind diff --git a/YaeBlog/build-tailwind.ps1 b/YaeBlog/build-tailwind.ps1 deleted file mode 100644 index cfb7e65..0000000 --- a/YaeBlog/build-tailwind.ps1 +++ /dev/null @@ -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 diff --git a/YaeBlog/build.ps1 b/YaeBlog/build.ps1 new file mode 100755 index 0000000..0242036 --- /dev/null +++ b/YaeBlog/build.ps1 @@ -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 + } + } +} +