Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
7e9a9c8
implement logic components on JSSyncService
TimPurdum Dec 16, 2025
526d0f8
missing geometry updates
TimPurdum Dec 16, 2025
dd1ca1c
finished testing
TimPurdum Dec 16, 2025
3f9b532
adding mac-specific needs
TimPurdum Jan 16, 2026
49c4936
Merge branch 'develop' into feature/mac-build-and-test
TimPurdum Jan 17, 2026
f96e928
mac updates
TimPurdum Jan 19, 2026
56ba134
Merge branch 'develop' into feature/protobuf-logic-components
TimPurdum Jan 22, 2026
472cfbb
Logic component implementation and adding cancellation token support.…
TimPurdum Jan 22, 2026
532ab7e
wip
TimPurdum Jan 23, 2026
2a63b84
adding test coverage
TimPurdum Jan 24, 2026
ae2c5ca
test improvements
TimPurdum Jan 25, 2026
9834ef5
move prologiccomponents to model folder and add tests
TimPurdum Jan 25, 2026
a144f4f
fix tests
TimPurdum Jan 25, 2026
52bb81e
Fix/update pro logic components
TimPurdum Jan 28, 2026
f3ccbc8
tests passing
TimPurdum Jan 29, 2026
3ee6dc3
update build tool outputs for separate os platforms
TimPurdum Jan 30, 2026
d3277bf
fix new tests
TimPurdum Jan 30, 2026
42db789
working on linux build
TimPurdum Jan 31, 2026
15476cb
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Jan 31, 2026
837ca59
update solution files and add test logs
TimPurdum Jan 31, 2026
0421eb9
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Jan 31, 2026
8a05fe6
updates on linux
TimPurdum Jan 31, 2026
8d05f12
merge
TimPurdum Jan 31, 2026
045242a
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Jan 31, 2026
19bc1d0
add script build step to Dockerfile
TimPurdum Jan 31, 2026
d16c735
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Jan 31, 2026
db73b53
working on linker aot issues
TimPurdum Feb 1, 2026
58aa761
functional again
TimPurdum Feb 1, 2026
af64d8f
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 1, 2026
4eea505
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 1, 2026
3a60fc7
fixed tests
TimPurdum Feb 1, 2026
64751d7
update dockerfile syntax to try to fix issue with missing keys.
TimPurdum Feb 1, 2026
a622441
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 1, 2026
2011d1c
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 1, 2026
f496d55
update docs, tests
TimPurdum Feb 2, 2026
3246f79
update docs, tests
TimPurdum Feb 3, 2026
cd4df64
update docs, tests
TimPurdum Feb 3, 2026
cbdd96e
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 3, 2026
92a8be8
update maui targets
TimPurdum Feb 3, 2026
a47ec45
Merge branch 'feature/protobuf-logic-components' of github.com:dymapt…
TimPurdum Feb 3, 2026
9681f76
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 3, 2026
3bdb33f
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 3, 2026
c57d3b4
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 3, 2026
0c75927
fixed containers, hopefully
TimPurdum Feb 3, 2026
243a05e
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 3, 2026
1a129f6
add logging details, buffer esbuild save file timestamp
TimPurdum Feb 3, 2026
59a82fb
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 3, 2026
5081d98
rewrite GeoBlazorBuild.cs, move service proxy to pro tests only
TimPurdum Feb 3, 2026
2c6a867
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 3, 2026
7bae280
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 3, 2026
8791200
fix samples deploy
TimPurdum Feb 3, 2026
0005ab7
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 3, 2026
2dc3a1a
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 3, 2026
2664ff5
update esbuild pattern, include code-behind in samples source code pa…
TimPurdum Feb 5, 2026
e42ec9b
update esbuild pattern, include code-behind in samples source code pa…
TimPurdum Feb 5, 2026
1537edf
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 5, 2026
56ca505
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 5, 2026
d948a76
update esbuild pattern
TimPurdum Feb 5, 2026
51b69cb
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 5, 2026
5fc039c
consolidate ESBuild source generator
TimPurdum Feb 5, 2026
b7ed05e
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 5, 2026
f400fcc
add missing proj files to dockerfiles
TimPurdum Feb 5, 2026
b4582ca
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 5, 2026
7537dc6
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 5, 2026
367232e
add missing proj files to dockerfiles
TimPurdum Feb 5, 2026
5109bd8
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 5, 2026
4e7880e
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 5, 2026
ca2c517
fix esbuild setup
TimPurdum Feb 6, 2026
63b6ed6
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 6, 2026
6e899ad
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 6, 2026
e78d774
fix esbuild setup
TimPurdum Feb 6, 2026
f3850d5
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 6, 2026
d05ceb4
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 6, 2026
a6263ff
update testing harness
TimPurdum Feb 6, 2026
603b98c
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 6, 2026
a520059
Fixing script paths
TimPurdum Feb 7, 2026
e44de55
compile changes for linux, update dockerfiles
TimPurdum Feb 7, 2026
d4ed5b2
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 7, 2026
8f8fc5d
update dockerfiles
TimPurdum Feb 7, 2026
b837b2c
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 7, 2026
8ea34a1
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 7, 2026
8c2eedb
remove esbuild source generators now that we've solved inline msbuild…
TimPurdum Feb 7, 2026
f921c35
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 7, 2026
ee6f86e
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 7, 2026
74e5a6d
Move ESBuild triggers to before restore
TimPurdum Feb 7, 2026
669ee99
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 7, 2026
efe92b1
Merge branch 'feature/mac-build-and-test' into feature/protobuf-logic…
TimPurdum Feb 7, 2026
43155b7
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 7, 2026
7676506
more fixes
TimPurdum Feb 8, 2026
95fd514
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 8, 2026
1209847
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 8, 2026
5430ee7
fixing up test harness
TimPurdum Feb 8, 2026
0c8eb47
fixing up test harness
TimPurdum Feb 9, 2026
dc65fe8
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 9, 2026
4c8913f
fixing up test harness
TimPurdum Feb 9, 2026
a786d22
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
84d73f4
move lock file handling from ESBuild.cs to Directory.Build.props to p…
TimPurdum Feb 9, 2026
61e019a
Merge branch 'feature/protobuf-logic-components' of github.com:dymapt…
TimPurdum Feb 9, 2026
56b9efc
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
06fd7f3
fixing up test harness
TimPurdum Feb 9, 2026
ea351c2
wip
TimPurdum Feb 9, 2026
39621e8
wip
TimPurdum Feb 9, 2026
3eaa181
Merge branch 'feature/protobuf-logic-components' of github.com:dymapt…
TimPurdum Feb 9, 2026
7ac77a1
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
a6e93ec
fixing up test harness
TimPurdum Feb 9, 2026
8a838a2
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
6d8a36a
Mac/Linux console dialog fixes
TimPurdum Feb 9, 2026
a468b2e
merge in to mac
TimPurdum Feb 9, 2026
ab36c1e
fixing up test harness
TimPurdum Feb 9, 2026
52ae542
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 9, 2026
8731170
fixing template and samples builds
TimPurdum Feb 9, 2026
629fa99
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
5019163
fix test counting
TimPurdum Feb 9, 2026
99432b6
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
cad0fda
Fix OSM test, thread-safe test counting
TimPurdum Feb 9, 2026
c8377f4
Merge remote-tracking branch 'origin/feature/protobuf-logic-component…
TimPurdum Feb 9, 2026
ec1a5b5
Pipeline Build Commit of Version and Docs
submodule-validation-for-geoblazor[bot] Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,14 @@
**/node_modules
**/npm-debug.log
**/obj
**/esBuild.lock
bin
obj
**/wwwroot/js/*.js
**/wwwroot/js/*.js.map
**/secrets.dev.yaml
**/values.dev.yaml
**/.esbuild-record.json
test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.Client/wwwroot/appsettings.json
LICENSE
README.md
File renamed without changes.
14 changes: 11 additions & 3 deletions .github/workflows/dev-pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,16 @@ jobs:
HTTP_PORT: 8082
HTTPS_PORT: 9445
run: |
dotnet test --project ./test/dymaptic.GeoBlazor.Core.Test.Automation/dymaptic.GeoBlazor.Core.Test.Automation.csproj -c Release --filter CORE_

dotnet ./build-tools/win-x64/GBTest.dll -c Release --cover --container --filter Core

- name: Upload test log
uses: actions/upload-artifact@v4
if: always()
with:
name: test-run-log
retention-days: 4
path: ./test/dymaptic.GeoBlazor.Core.Test.Automation/test-run.log

build:
runs-on: ubuntu-latest
needs: [ actor-check ]
Expand Down Expand Up @@ -99,7 +107,7 @@ jobs:
- name: Build GeoBlazor
shell: pwsh
run: |
dotnet ./build-tools/GeoBlazorBuild.dll -xml -pkg -docs -c "Release"
dotnet ./build-tools/linux-x64/GeoBlazorBuild.dll -xml -pkg -docs -c "Release"

# Copies the nuget package to the artifacts directory
- name: Upload nuget artifact
Expand Down
14 changes: 11 additions & 3 deletions .github/workflows/main-release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,21 @@ jobs:
HTTP_PORT: 8082
HTTPS_PORT: 9445
run: |
dotnet test --project ./test/dymaptic.GeoBlazor.Core.Test.Automation/dymaptic.GeoBlazor.Core.Test.Automation.csproj -c Release --filter CORE_

dotnet ./build-tools/win-x64/GBTest.dll -c Release --container --filter Core

- name: Upload test log
uses: actions/upload-artifact@v4
if: always()
with:
name: test-run-log
retention-days: 4
path: ./test/dymaptic.GeoBlazor.Core.Test.Automation/test-run.log

# This runs the main GeoBlazor build script
- name: Build GeoBlazor
shell: pwsh
run: |
dotnet ./build-tools/GeoBlazorBuild.dll -xml -pkg -pub -c "Release"
dotnet ./build-tools/win-x64/GeoBlazorBuild.dll -xml -pkg -pub -c "Release"

# xmllint is a dependency of the copy steps below
- name: Install xmllint
Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,12 @@ jobs:
HTTP_PORT: 8082
HTTPS_PORT: 9445
run: |
dotnet test --project ./test/dymaptic.GeoBlazor.Core.Test.Automation/dymaptic.GeoBlazor.Core.Test.Automation.csproj -c Release --filter CORE_
dotnet ./build-tools/win-x64/GBTest.dll -c Release --cover --container --filter Core

- name: Upload test log
uses: actions/upload-artifact@v4
if: always()
with:
name: test-run-log
retention-days: 4
path: ./test/dymaptic.GeoBlazor.Core.Test.Automation/test-run.log
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,19 @@
*.userosscache
*.sln.docstates
.DS_Store
esBuild.*.lock
**/esBuild.lock
esBuild.log
esBuild.hash
*.binlog
.esbuild-record.json
.csbuild-record.json
CustomerTests.razor
.claude/
.env
test/dymaptic.GeoBlazor.Core.Test.Automation/test.txt
test/dymaptic.GeoBlazor.Core.Test.Automation/test-run.log
test/dymaptic.GeoBlazor.Core.Test.Automation/coverage*
test/dymaptic.GeoBlazor.Core.Test.Automation/history*
test/dymaptic.GeoBlazor.Core.Test.Automation/unit-coverage*
test/dymaptic.GeoBlazor.Core.Test.Automation/sgen-coverage*
test/dymaptic.GeoBlazor.Core.Test.Automation/Summary.txt
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ GeoBlazor is a Blazor component library that brings ArcGIS Maps SDK for JavaScri
### Build
```bash
# Clean build of the Core project
dotnet ./build-tools/GeoBlazorBuild.dll
dotnet ./build-tools/win-x64/GeoBlazorBuild.dll

-- _`GeoBlazorBuild` includes lots of options, use -h to see options_

Expand Down Expand Up @@ -77,7 +77,7 @@ pwsh bumpVersion.ps1 -test 1.2.3 # Test version bump
### Development
```bash
# Clear ESBuild locks if build is stuck
dotnet ./build-tools/ESBuildClearLocks.dll
dotnet ./build-tools/win-x64/ESBuildClearLocks.dll

# Watch TypeScript changes (from src/dymaptic.GeoBlazor.Core/)
npm run watchBuild
Expand Down
62 changes: 57 additions & 5 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,76 @@
<PropertyGroup>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<CoreVersion>5.0.0.38</CoreVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CoreVersion>5.0.0.75</CoreVersion>
<Configurations>Debug;Release;SourceGen Highlighting</Configurations>
<Platforms>AnyCPU</Platforms>
<CoreProjectPath>$(MSBuildThisFileDirectory)src\dymaptic.GeoBlazor.Core</CoreProjectPath>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<CoreProjectPath>$(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core</CoreProjectPath>
<!-- https://github.com/dotnet/aspnetcore/issues/64381 -->
<StaticWebAssetEndpointExclusionPattern>
$(StaticWebAssetEndpointExclusionPattern);js/**
</StaticWebAssetEndpointExclusionPattern>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsWindows())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'X64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/win-x64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsWindows())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'Arm64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/win-arm64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsMacOS())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'X64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/osx-x64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsMacOS())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'Arm64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/osx-arm64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsLinux())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'X64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/linux-x64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsLinux())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'Arm64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/linux-arm64</GBBuildToolsPath>
</PropertyGroup>
<ItemGroup>
<Watch Remove="$(CoreProjectPath)\wwwroot\**\*;$(CoreProjectPath)\Scripts\**\*;**\esbuild*;$(CoreProjectPath)\node_modules\**\*" />
</ItemGroup>
<ItemGroup>
<CompilerVisibleProperty Include="Configuration" Value="$(GBBuildToolsPath)" />
<CompilerVisibleProperty Include="Configuration" Value="$(Configuration)" />
<CompilerVisibleProperty Include="PipelineBuild" Value="$(PipelineBuild)" />
<CompilerVisibleProperty Include="LogSourceGenOutput" Value="$(LogSourceGenOutput)" />
<CompilerVisibleProperty Include="CoreProjectPath" Value="$(CoreProjectPath)" />
<CompilerVisibleProperty Include="DesignTimeBuild" Value="$(DesignTimeBuild)" />
<CompilerVisibleProperty Include="ShowScriptDialogs" Value="$(ShowScriptDialogs)" />
<CompilerVisibleProperty Include="CoreProjectPath" Value="$(CoreProjectPath)" />
<CompilerVisibleProperty Include="CoreProjectPath" Value="$(ProProjectPath)" />
</ItemGroup>
<!-- ESBuild Project Trigger: Must happen before RESTORE -->
<PropertyGroup>
<BuildDependsOn>TriggerESBuild;$(BuildDependsOn)</BuildDependsOn>
<ESBuildLockFilePath>$(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core/esBuild.lock</ESBuildLockFilePath>
<ESBuildLockFileTimeStamp Condition="EXISTS($(ESBuildLockFilePath))">$([System.IO.File]::GetLastWriteTime(`$(ESBuildLockFilePath)`).Ticks)</ESBuildLockFileTimeStamp>
<ESBuildLockFileTimeStamp Condition="'$(ESBuildLockFileTimeStamp)' == ''">0</ESBuildLockFileTimeStamp>
<StaleFileThresholdTimeStamp>$([System.DateTime]::Now.AddMinutes(-5).Ticks)</StaleFileThresholdTimeStamp>
<ESBuildRemoveProps>
BuildProjectReferences;
Configuration;
EnableDefaultCompileItems;
EnableDefaultEmbeddedResourceItems;
EnableDefaultNoneItems;
ExcludeRestorePackageImports;
GBBuildToolsPath;
MSBuildIsRestoring;
MSBuildRestoreSessionId;
NugetInteractive;
Platform;
ProESBuildRequired;
ShowScriptDialogs;
TargetFramework;
TargetFrameworks;
TriggerESBuild;
TriggerProESBuild
</ESBuildRemoveProps>
</PropertyGroup>
<Target Name="TriggerESBuild" BeforeTargets="Restore;BeforeBuild" Condition="'$(MSBuildProjectName)' != 'dymaptic.GeoBlazor.Core.ESBuild' AND (!EXISTS($(ESBuildLockFilePath)) OR $(ESBuildLockFileTimeStamp) &lt; $(StaleFileThresholdTimeStamp))">
<WriteLinesToFile File="$(ESBuildLockFilePath)" Lines="$([System.DateTime]::Now.ToString(`o`))" Overwrite="false" ContinueOnError="true" />
<Exec Command="dotnet restore $(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core.ESBuild/dymaptic.GeoBlazor.Core.ESBuild.csproj" />
<MSBuild Projects="$(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core.ESBuild/dymaptic.GeoBlazor.Core.ESBuild.csproj" Properties="GBBuildToolsPath=$(GBBuildToolsPath);ShowScriptDialogs=$(ShowScriptDialogs)" RemoveProperties="$(ESBuildRemoveProps)" />
</Target>
</Project>
6 changes: 0 additions & 6 deletions Directory.Build.targets

This file was deleted.

62 changes: 37 additions & 25 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# syntax=docker/dockerfile:1.7.0
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG ARCGIS_API_KEY
ARG GEOBLAZOR_LICENSE_KEY
ARG WFS_SERVERS
ARG HTTP_PORT
ARG HTTPS_PORT
ENV ARCGIS_API_KEY=${ARCGIS_API_KEY}
ENV GEOBLAZOR_LICENSE_KEY=${GEOBLAZOR_LICENSE_KEY}
ENV WFS_SERVERS=${WFS_SERVERS}

# Install NodeJS and NPM
RUN apt-get update \
&& apt-get install -y ca-certificates curl gnupg \
&& mkdir -p /etc/apt/keyrings \
Expand All @@ -16,51 +15,63 @@ RUN apt-get update \
&& apt-get update \
&& apt-get install -y nodejs

# Install NPM Packages
WORKDIR /work
WORKDIR /work/src/dymaptic.GeoBlazor.Core
COPY ./src/dymaptic.GeoBlazor.Core/package.json ./package.json
RUN npm install
RUN --mount=type=cache,target=/root/.npm npm install

WORKDIR /work
COPY ./src/ ./src/

# Update GeoBlazor Build Scripts
COPY ./build-tools/build-scripts ./build-tools/build-scripts
COPY ./build-tools/utilities ./build-tools/utilities
RUN --mount=type=cache,target=/root/.nuget/packages \
dotnet run ./build-tools/build-scripts/ScriptBuilder.cs

# Copy Source Files
COPY ./*.ps1 ./
COPY ./Directory.Build.* ./
COPY ./.gitignore ./.gitignore
COPY ./nuget.config ./nuget.config
COPY ./build-tools ./build-tools
COPY ./build-scripts/ScriptBuilder.cs ./build-scripts/ScriptBuilder.cs

RUN dotnet ./build-tools/GeoBlazorBuild.dll -v current

COPY ./test/dymaptic.GeoBlazor.Core.Test.Blazor.Shared/dymaptic.GeoBlazor.Core.Test.Blazor.Shared.csproj ./test/dymaptic.GeoBlazor.Core.Test.Blazor.Shared.csproj
COPY ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.csproj ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.csproj
COPY ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.Client/dymaptic.GeoBlazor.Core.Test.WebApp.Client.csproj ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.Client/dymaptic.GeoBlazor.Core.Test.WebApp.Client.csproj

# Use UsePackageReference=false to build from source (enables code coverage with PDB symbols)
RUN dotnet restore ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.csproj /p:UsePackageReference=false

COPY ./src/ ./src/
COPY ./test/dymaptic.GeoBlazor.Core.Test.Blazor.Shared ./test/dymaptic.GeoBlazor.Core.Test.Blazor.Shared
COPY ./test/dymaptic.GeoBlazor.Core.Test.WebApp ./test/dymaptic.GeoBlazor.Core.Test.WebApp

RUN dotnet ./build-tools/BuildAppSettings.dll \
-k "$ARCGIS_API_KEY" \
-l "$GEOBLAZOR_LICENSE_KEY" \
# Create appsettings files
RUN dotnet ./build-tools/linux-x64/BuildAppSettings.dll \
-k "${ARCGIS_API_KEY}" \
-l "${GEOBLAZOR_LICENSE_KEY}" \
-o "./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.Client/wwwroot/appsettings.json" \
-o "./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.Client/wwwroot/appsettings.Production.json" \
-o "./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/appsettings.json" \
-o "./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/appsettings.Production.json" \
-w "$WFS_SERVERS"
-w "${WFS_SERVERS}"

# Build from source with debug symbols for code coverage
# UsePackageReference=false builds GeoBlazor from source instead of NuGet
# DebugSymbols=true and DebugType=portable ensure PDB files are generated
RUN dotnet publish ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.csproj \
RUN --mount=type=cache,target=/root/.nuget/packages \
dotnet build ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.csproj \
-c Release \
/p:UsePackageReference=false \
/p:DebugSymbols=true \
/p:DebugType=portable \
/p:GeneratePackage=false \
/p:GenerateDocs=false \
/p:GenerateXmlComments=false \
/p:ShowScriptDialogs=false

RUN --mount=type=cache,target=/root/.nuget/packages \
dotnet publish ./test/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp/dymaptic.GeoBlazor.Core.Test.WebApp.csproj \
-c Release \
/p:UsePackageReference=false \
/p:PipelineBuild=true \
/p:DebugSymbols=true \
/p:DebugType=portable \
/p:GeneratePack=false \
/p:GeneratePackage=false \
/p:GenerateDocs=false \
/p:GenerateXmlComments=false \
/p:ShowScriptDialogs=false \
-o /app/publish

FROM mcr.microsoft.com/dotnet/aspnet:10.0
Expand Down Expand Up @@ -109,6 +120,7 @@ ENV ASPNETCORE_Kestrel__Certificates__Default__Password=password
# Coverage configuration (can be overridden via environment)
ENV COVERAGE_ENABLED=false
ENV COVERAGE_FORMAT=xml
ENV SESSION_ID=WEB_APP

# Copy entrypoint script
COPY ./test/dymaptic.GeoBlazor.Core.Test.Automation/docker-entrypoint.sh /docker-entrypoint.sh
Expand All @@ -117,4 +129,4 @@ RUN chmod +x /docker-entrypoint.sh
USER info
EXPOSE ${HTTP_PORT} ${HTTPS_PORT}
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["dotnet", "dymaptic.GeoBlazor.Core.Test.WebApp.dll"]
CMD ["dotnet", "dymaptic.GeoBlazor.Core.Test.WebApp.dll"]
Loading