From 56f66503d63ba83384bd6ee78d63ac9339daabb1 Mon Sep 17 00:00:00 2001 From: Pierre Chalamet Date: Thu, 15 Jan 2026 22:37:10 +0100 Subject: [PATCH 1/2] log to file --- Makefile | 8 ++++---- src/Terrabuild/Program.fs | 8 ++++++-- src/Terrabuild/Terrabuild.fsproj | 1 + src/Terrabuild/Web/GraphServer.fs | 9 ++++++++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index e8955ad8..a59918bb 100644 --- a/Makefile +++ b/Makefile @@ -55,19 +55,19 @@ usage: # | _| `._____||_______||_______||_______/__/ \__\ |_______/ |_______| # -publish: +publish: webui dotnet publish -c $(config) -p:Version=$(version) -o $(PWD)/.out/dotnet src/Terrabuild dotnet pack -c $(config) -p:Version=$(version) -o .out -publish-darwin: +publish-darwin: webui dotnet publish -c $(config) -r osx-x64 -p:PublishSingleFile=true --self-contained -p:Version=$(version) -p:IncludeNativeLibrariesForSelfExtract=true -o $(PWD)/.out/darwin/x64 src/Terrabuild dotnet publish -c $(config) -r osx-arm64 -p:PublishSingleFile=true --self-contained -p:Version=$(version) -p:IncludeNativeLibrariesForSelfExtract=true -o $(PWD)/.out/darwin/arm64 src/Terrabuild -publish-linux: +publish-linux: webui dotnet publish -c $(config) -r linux-x64 -p:PublishSingleFile=true --self-contained -p:Version=$(version) -p:IncludeNativeLibrariesForSelfExtract=true -o $(PWD)/.out/linux/x64 src/Terrabuild dotnet publish -c $(config) -r linux-arm64 -p:PublishSingleFile=true --self-contained -p:Version=$(version) -p:IncludeNativeLibrariesForSelfExtract=true -o $(PWD)/.out/linux/arm64 src/Terrabuild -publish-windows: +publish-windows: webui dotnet publish -c $(config) -r win-x64 -p:PublishSingleFile=true --self-contained -p:Version=$(version) -p:IncludeNativeLibrariesForSelfExtract=true -o $(PWD)/.out/windows/x64 src/Terrabuild dotnet publish -c $(config) -r win-arm64 -p:PublishSingleFile=true --self-contained -p:Version=$(version) -p:IncludeNativeLibrariesForSelfExtract=true -o $(PWD)/.out/windows/arm64 src/Terrabuild diff --git a/src/Terrabuild/Program.fs b/src/Terrabuild/Program.fs index 44c26919..334e3259 100644 --- a/src/Terrabuild/Program.fs +++ b/src/Terrabuild/Program.fs @@ -61,7 +61,7 @@ let processCommandLine (parser: ArgumentParser) (result: ParseRe let logFile name = FS.combinePath launchDir $"terrabuild-debug.{name}" - if debug then + if log || debug then let loggerBuilder = LoggerConfiguration().WriteTo.File(logFile "log") let loggerBuilder = if debug then loggerBuilder.MinimumLevel.Debug() @@ -301,7 +301,11 @@ let processCommandLine (parser: ArgumentParser) (result: ParseRe runTarget options let graph (graphArgs: ParseResults) = - GraphServer.start graphArgs + "Press Ctrl+C to exit graph server mode." |> Terminal.writeLine + Terminal.flush() + Console.SetOut(IO.TextWriter.Null) + Console.SetError(IO.TextWriter.Null) + GraphServer.start graphArgs (log || debug) debug let logs (logsArgs: ParseResults) = let targets = logsArgs.GetResult(LogsArgs.Target) |> Seq.map String.toLower diff --git a/src/Terrabuild/Terrabuild.fsproj b/src/Terrabuild/Terrabuild.fsproj index f753534f..7eb51965 100644 --- a/src/Terrabuild/Terrabuild.fsproj +++ b/src/Terrabuild/Terrabuild.fsproj @@ -63,6 +63,7 @@ + diff --git a/src/Terrabuild/Web/GraphServer.fs b/src/Terrabuild/Web/GraphServer.fs index 6c133e86..5b660efb 100644 --- a/src/Terrabuild/Web/GraphServer.fs +++ b/src/Terrabuild/Web/GraphServer.fs @@ -16,6 +16,8 @@ open Microsoft.AspNetCore.Http open Microsoft.Extensions.FileProviders open Microsoft.Extensions.Hosting open Microsoft.Extensions.DependencyInjection +open Microsoft.Extensions.Logging +open Serilog open Collections open Environment open CLI @@ -256,7 +258,7 @@ let private startBuildProcess (workspace: string) (request: BuildRequest) (logSt Ok proc.Id ) -let start (graphArgs: ParseResults) = +let start (graphArgs: ParseResults) (logEnabled: bool) (debugEnabled: bool) = let workspace = graphArgs.TryGetResult(CLI.GraphArgs.Workspace) |> resolveWorkspace @@ -280,6 +282,11 @@ let start (graphArgs: ParseResults) = let port = graphArgs.TryGetResult(GraphArgs.Port) |> Option.defaultValue 5179 let url = $"http://127.0.0.1:{port}" let builder = WebApplication.CreateBuilder() + builder.Logging.ClearProviders() |> ignore + if debugEnabled then + builder.Logging.SetMinimumLevel(LogLevel.Debug) |> ignore + if logEnabled then + builder.Logging.AddSerilog(Log.Logger, dispose = false) |> ignore builder.Services.AddCors() |> ignore builder.WebHost.UseUrls(url) |> ignore From 33476af1bc3d09741b0dbbb64312a80302d6bee4 Mon Sep 17 00:00:00 2001 From: Pierre Chalamet Date: Thu, 15 Jan 2026 22:42:26 +0100 Subject: [PATCH 2/2] add node + pnpm --- .github/workflows/on-push-branch.yml | 10 ++++++++++ .github/workflows/on-push-tag.yml | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/.github/workflows/on-push-branch.yml b/.github/workflows/on-push-branch.yml index e2b1ddf3..7c4fb288 100644 --- a/.github/workflows/on-push-branch.yml +++ b/.github/workflows/on-push-branch.yml @@ -34,6 +34,16 @@ jobs: with: dotnet-version: 10.0.100 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.0 + - name: Self Build run: | echo "# Self Build" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/on-push-tag.yml b/.github/workflows/on-push-tag.yml index e6070be0..104ab248 100644 --- a/.github/workflows/on-push-tag.yml +++ b/.github/workflows/on-push-tag.yml @@ -29,6 +29,16 @@ jobs: with: dotnet-version: 10.0.100 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.0 + - name: Build & Publish run: make publish-all config=Release version=${{ env.BUILD_VERSION }}