Skip to content

Conversation

MattKotsenas
Copy link
Member

Fixes #1189

This PR adds the ability to set / skip the CloudBuildNumber in both the Cake task and the CLI.

Common

  • Adds a new bool cloudBuildNumber to CloudCommand::SetBuildVariables
     

Cake.GitVersioning

  • Adds a new CloudBuildNumber to GetVersioningCloudSettings with the default value of true
  • Makes the default values of AllVariables and CommonVariables explicit (but no change)

nbgv CLI

  • Adds a new command line switch --skip-cloud-build-number / -b which if specified sets cloudBuildNumber to false.

Tests

  • There weren't any automated tests to cover this scenario, so added some basic tests

@MattKotsenas
Copy link
Member Author

MattKotsenas commented Mar 23, 2025

I felt bad not writing tests for this, but I'm not happy with the tests that I wrote:

  • They're tied to individual cloud providers, which feels wrong
  • They test by side effect, assuming that if all + common + cloudBuildNumber are all off, the output will always be empty

I'm happy to refactor CloudCommand to take an ICloudBuild for testing, but the only ways I can think of are to either make a public constructor or make an internal one and add InternalsVisibleTo. Let me know if you have any preference.

Copy link
Collaborator

@AArnott AArnott left a comment

Choose a reason for hiding this comment

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

Thanks for this. I left a comment on a suggested test change, but otherwise I'm happy to take this.

I also removed the = false; property initializers you added since I don't care for explicitly setting defaults.

@MattKotsenas MattKotsenas requested a review from AArnott March 28, 2025 18:11
@AArnott AArnott added this to the v3.8 milestone Apr 1, 2025
@AArnott AArnott merged commit bba85d9 into dotnet:main Apr 1, 2025
13 checks passed
@MattKotsenas MattKotsenas deleted the feature/1189-skip-buildnumber branch April 24, 2025 16:24
microsoft-github-policy-service bot pushed a commit to Azure/template-reference-generator that referenced this pull request Sep 28, 2025
Updated
[Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning)
from 3.7.115 to 3.8.118.

<details>
<summary>Release notes</summary>

_Sourced from [Nerdbank.GitVersioning's
releases](https://github.com/dotnet/Nerdbank.GitVersioning/releases)._

## 3.8.118

## Fixes

* Don't try to disable CA2243 warnings in the generated version info
files for F# by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1174
* Catch a more general JsonException. by @​ANGEL-OF-DEV in
dotnet/Nerdbank.GitVersioning#1191
* Retarget links to migrated docs by @​bencemali in
dotnet/Nerdbank.GitVersioning#1193
* Check MSBuild items with case insensitivity by @​AArnott in
dotnet/Nerdbank.GitVersioning#1213
* Fix inconsistent CLI output format for GitCommitDate by @​Copilot in
dotnet/Nerdbank.GitVersioning#1246
* Fix version height computed as 0 when project path has non-canonical
casing by @​Copilot in
dotnet/Nerdbank.GitVersioning#1244
* When generating the GitCommitDate field in the AssemblyInfo for F#, d…
by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1253
* Only do Android version check on applications by @​dotMorten in
dotnet/Nerdbank.GitVersioning#1256
* Fix `nbgv set-version` to write to the best version.json file in scope
by @​AArnott in
dotnet/Nerdbank.GitVersioning#1264

## Enhancements

* Add msbuild-provided prerelease identifiers by @​AArnott in
dotnet/Nerdbank.GitVersioning#1153
* Add support for stamping version on server.json for MCP servers with
0.0.0-placeholder replacement by @​Copilot in
dotnet/Nerdbank.GitVersioning#1270 and by
@​AArnott in dotnet/Nerdbank.GitVersioning#1271
* Add option to set / skip CloudBuildNumber by @​MattKotsenas in
dotnet/Nerdbank.GitVersioning#1190
* Add Central Package Management (CPM) support to nbgv install command
by @​Copilot in
dotnet/Nerdbank.GitVersioning#1208
* Add --public-release argument to nbgv get-version command by @​Copilot
in dotnet/Nerdbank.GitVersioning#1245
* Invoke PrivateP2PCaching.proj fewer times by @​AArnott in
dotnet/Nerdbank.GitVersioning#1263

## Other changes

* Update dependency Cake.Core to v5 by @​renovate[bot] in
dotnet/Nerdbank.GitVersioning#1183

## New Contributors
* @​ANGEL-OF-DEV made their first contribution in
dotnet/Nerdbank.GitVersioning#1191
* @​bencemali made their first contribution in
dotnet/Nerdbank.GitVersioning#1193
* @​Copilot made their first contribution in
dotnet/Nerdbank.GitVersioning#1208
* @​dotMorten made their first contribution in
dotnet/Nerdbank.GitVersioning#1256
* @​emmanuel-ferdman made their first contribution in
dotnet/Nerdbank.GitVersioning#1145

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.7.115...v3.8.118

## 3.8.106-alpha

## What's Changed

### Enhancements

* Add option to set / skip CloudBuildNumber by @​MattKotsenas in
dotnet/Nerdbank.GitVersioning#1190
* Add Central Package Management (CPM) support to nbgv install command
by @​Copilot in
dotnet/Nerdbank.GitVersioning#1208
* Add --public-release argument to nbgv get-version command by @​Copilot
in dotnet/Nerdbank.GitVersioning#1245
* Invoke PrivateP2PCaching.proj fewer times by @​AArnott in
dotnet/Nerdbank.GitVersioning#1263

### Fixes

* Catch a more general JsonException. by @​ANGEL-OF-DEV in
dotnet/Nerdbank.GitVersioning#1191
* Retarget links to migrated docs by @​bencemali in
dotnet/Nerdbank.GitVersioning#1193
* Check MSBuild items with case insensitivity by @​AArnott in
dotnet/Nerdbank.GitVersioning#1213
* Fix inconsistent CLI output format for GitCommitDate by @​Copilot in
dotnet/Nerdbank.GitVersioning#1246
* Fix version height computed as 0 when project path has non-canonical
casing by @​Copilot in
dotnet/Nerdbank.GitVersioning#1244
* When generating the GitCommitDate field in the AssemblyInfo for F#, d…
by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1253
* Only do Android version check on applications by @​dotMorten in
dotnet/Nerdbank.GitVersioning#1256
* Fix `nbgv set-version` to write to the best version.json file in scope
by @​AArnott in
dotnet/Nerdbank.GitVersioning#1264

### Other changes

* Update dependency Cake.Core to v5 by @​renovate[bot] in
dotnet/Nerdbank.GitVersioning#1183

## New Contributors
* @​ANGEL-OF-DEV made their first contribution in
dotnet/Nerdbank.GitVersioning#1191
* @​bencemali made their first contribution in
dotnet/Nerdbank.GitVersioning#1193
* @​Copilot made their first contribution in
dotnet/Nerdbank.GitVersioning#1208
* @​dotMorten made their first contribution in
dotnet/Nerdbank.GitVersioning#1256

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.8.38-alpha...v3.8.106-alpha

## 3.8.38-alpha

## Fixes

* Don't try to disable CA2243 warnings in the generated version info
files for F# by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1174

## Enhancements

* Add msbuild-provided prerelease identifiers by @​AArnott in
dotnet/Nerdbank.GitVersioning#1153

## New Contributors
* @​emmanuel-ferdman made their first contribution in
dotnet/Nerdbank.GitVersioning#1145

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.7.115...v3.8.38-alpha

Commits viewable in [compare
view](dotnet/Nerdbank.GitVersioning@v3.7.115...v3.8.118).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Nerdbank.GitVersioning&package-manager=nuget&previous-version=3.7.115&new-version=3.8.118)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Sep 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Option to not emit vso[build.updatebuildnumber] to prevent pipeline warnings
2 participants