Skip to content

Implement msbuild targets to replace Build.csproj#4498

Merged
fabiocav merged 11 commits intomainfrom
feature/build-project
Jul 8, 2025
Merged

Implement msbuild targets to replace Build.csproj#4498
fabiocav merged 11 commits intomainfrom
feature/build-project

Conversation

@liliankasem
Copy link
Member

Issue describing the changes in this PR

resolves #4303

Pull request checklist

  • My changes do not require documentation changes
    • Otherwise: Documentation issue linked to PR
  • My changes do not need to be backported to a previous version
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • I have added all required tests (Unit tests, E2E tests)

Additional Information

  • Implement msbuild props & targets to replace Build.csproj
  • Update CI pipelines to run tests and RID builds in parallel
  • Misc. refactor of repo

All PRs have been previously reviewed and approved, this is the big merge of this feature into main.

Implement GoZipTool as NoTargets csproj

Move MSI resources to eng/res folder

Move publish scripts to tools/publish-tools

Update versioning logic & move TelemetryInstrumentationKey to its own…

Impement build props and targets

Update scripts

Misc updates & fixes to documentation, docker, .targets, and tests

Implement new CI pipelines that will build, sign, test & publish the …

Clean up CI files & fix version regex

Fix unit test project

Update host and consolidation CI pipelines

@liliankasem liliankasem requested review from a team as code owners July 2, 2025 20:03
@liliankasem liliankasem force-pushed the feature/build-project branch from 62373c5 to 7fc1a46 Compare July 2, 2025 20:04
@liliankasem liliankasem changed the title Implement msbuild props & targets to replace Build.csproj Implement msbuild targets to replace Build.csproj Jul 2, 2025
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateRuntimeConfigDevFile>true</GenerateRuntimeConfigDevFile><!-- https://github.com/dotnet/runtime/issues/54684 -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is referencing an issue that has been closed as resolved (and opened in the context of .NET 6). Still applicable?

@fabiocav fabiocav requested a review from Copilot July 8, 2025 16:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR replaces the old Build.csproj approach with MSBuild props and targets, refactors repo structure, and updates CI pipelines to run tests and RID builds in parallel.

  • Introduce Directory.Build.props/targets and related MSBuild files under eng/build/
  • Add a standalone GoZipTool project and integrate its build into the CLI MSBuild
  • Revamp CI YAML: use $(SrcRoot)/$(EngBuildRoot) paths, parallelize builds/tests, and update artifact signing

Reviewed Changes

Copilot reviewed 91 out of 125 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Directory.Build.props / Directory.Build.targets Import Engineering.props/targets and drop custom Cli.Build.targets
src/GoZipTool/GoZipTool.csproj New MSBuild NoTargets project for building GoZip per RID
src/Cli/func/*.csproj and related props/targets Update project references, enable C#12 array init, add version props/targets
src/Cli/func/Common/Constants.* Move telemetry key to build-only file, switch to extension methods
eng/build/* New MSBuild targets for templates, zipping, versioning, release
eng/scripts Script path updates, parameter renames, improved MSI and SHA logic
eng/ci/templates/* YAML refactor: path variables, parallel jobs, templated stages
docker/* Update Dockerfile and compose for new structure
Comments suppressed due to low confidence (2)

eng/ci/templates/steps/install-tools.yml:15

  • The NuGetToolInstaller@1 task has an empty versionSpec input. Specify a version (e.g., 'latest') or remove the setting to avoid failures during tool installation.
    versionSpec:

docker/Dockerfile:12

  • The Dockerfile no longer copies and runs download-templates.ps1, which may prevent the templates.json from being generated in the container. Ensure MSBuild's DownloadAndExtractTemplatesJson target runs successfully in this image or reintroduce the script step.
COPY eng/ eng/

@liliankasem liliankasem force-pushed the feature/build-project branch from e200183 to 7fc1a46 Compare July 8, 2025 17:22
@fabiocav fabiocav merged commit 7fc1a46 into main Jul 8, 2025
30 of 44 checks passed
@fabiocav fabiocav deleted the feature/build-project branch July 8, 2025 17: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.

Implement msbuild targets to allow for deprecation of Build.csproj

7 participants