Skip to content

Retire the TeamCity-oriented build path - #236

Merged
tombogle merged 3 commits into
masterfrom
remove-cruft
Sep 22, 2026
Merged

tombogle merged 3 commits into
masterfrom
remove-cruft

Conversation

@tombogle

Copy link
Copy Markdown
Contributor

Summary

Stacked on #235. TeamCity was decommissioned for this project a while ago, and CI now runs entirely through .github/workflows/CI-CD.yml, calling dotnet build/test/pack directly — it never touched build/icu-dotnet.proj.

  • Deletes build/icu-dotnet.proj and its build/NuGet.targets bootstrap (TeamCity detection, NUnitTeamCity task loaded from TeamCity's agent plugins, SIL.BuildTasks-based console-runner test target, legacy nuget.exe restore against dead feed URLs).
  • Deletes build/TestInstallerBuild.bat, unrelated leftover cruft for building a different repository entirely.
  • Rewrites build/TestBuild.sh as a thin wrapper around dotnet build/dotnet test, mirroring the CI steps exactly, and adds build/TestPack.sh alongside it for the pack step — so local and CI builds can't drift apart again.
  • Removes NUnit.Console from icu.net.tests.csproj: it only existed to give icu-dotnet.proj's console-runner target something to run; dotnet test uses NUnit3TestAdapter instead.

Test plan

  • dotnet build/dotnet test/dotnet pack all succeed
  • Ran build/TestBuild.sh and build/TestPack.sh locally end-to-end
  • git grep -i teamcity / icu-dotnet.proj / NuGet.targets / SIL.BuildTasks return no remaining references outside historical CHANGELOG entries

🤖 Generated with Claude Code

@imnasnainaec

This comment was marked as resolved.

tombogle added a commit that referenced this pull request Sep 21, 2026
…de bit

Devin's review of #236 found three real issues:
- Both scripts ran `dotnet test` without specifying a target framework,
  which attempts net462 (.NET Framework) too. That only works on Windows;
  CI already gates its net462 test step to windows-latest, so mirror that
  here by testing net8.0/net10.0 unconditionally and net462 only when
  $OS is Windows_NT.
- Neither script had `set -e`, so a failing `dotnet test` wouldn't stop
  the script - `dotnet pack` would still run afterward and could succeed,
  silently masking the test failure.
- TestPack.sh was committed with mode 100644 (non-executable). This repo
  has core.fileMode=false, so a local `chmod +x` before `git add` is never
  picked up by git; fixed by forcing the bit with
  `git update-index --chmod=+x`.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Base automatically changed from retarget-frameworks to master September 22, 2026 11:34
tombogle and others added 3 commits September 22, 2026 08:32
It built SOLID and was never meant to be in this repo
TeamCity was decommissioned for this project a while ago, and CI now
runs entirely through .github/workflows/CI-CD.yml, calling dotnet
build/test/pack directly - it never touched icu-dotnet.proj. That file
only survived as a manual local-build helper (via TestBuild.sh), still
carrying TeamCity detection, a NUnitTeamCity task loaded from TeamCity's
agent plugins, and a SIL.BuildTasks-based console-runner test target.

Delete icu-dotnet.proj and its NuGet.targets bootstrap, and replace
TestBuild.sh with a thin wrapper around the same dotnet CLI commands CI
uses so local and CI builds can't drift apart again. Add TestPack.sh
alongside it for the pack step. NUnit.Console is no longer needed in
icu.net.tests.csproj since it only existed to give icu-dotnet.proj's
console-runner target something to run - dotnet test uses
NUnit3TestAdapter instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…de bit

Devin's review of #236 found three real issues:
- Both scripts ran `dotnet test` without specifying a target framework,
  which attempts net462 (.NET Framework) too. That only works on Windows;
  CI already gates its net462 test step to windows-latest, so mirror that
  here by testing net8.0/net10.0 unconditionally and net462 only when
  $OS is Windows_NT.
- Neither script had `set -e`, so a failing `dotnet test` wouldn't stop
  the script - `dotnet pack` would still run afterward and could succeed,
  silently masking the test failure.
- TestPack.sh was committed with mode 100644 (non-executable). This repo
  has core.fileMode=false, so a local `chmod +x` before `git add` is never
  picked up by git; fixed by forcing the bit with
  `git update-index --chmod=+x`.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Test Results

       9 files  ±0     727 suites  ±0   12s ⏱️ +2s
   439 tests ±0     435 ✔️ ±0      4 💤 ±0  0 ±0 
4 033 runs  ±0  3 817 ✔️ ±0  216 💤 ±0  0 ±0 

Results for commit d9a79d7. ± Comparison against base commit d9005ac.

@tombogle
tombogle merged commit a3b7f88 into master Sep 22, 2026
7 checks passed
@tombogle
tombogle deleted the remove-cruft branch September 22, 2026 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants