Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nuke-build/nuke
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7.0.2
Choose a base ref
...
head repository: nuke-build/nuke
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 7.0.3
Choose a head ref

Commits on Aug 14, 2023

  1. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    a982bd3 View commit details
  2. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    7854670 View commit details
  3. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    ddd907d View commit details
  4. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    7a2adfa View commit details
  5. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    f2e0ab0 View commit details
  6. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    24b76ec View commit details
  7. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    91e8f53 View commit details
  8. Partially verified

    This commit is signed with the committer’s verified signature.
    matkoch’s contribution has been verified via GPG key.
    We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
    Copy the full SHA
    86e9e64 View commit details
  9. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    9498ca0 View commit details

Commits on Aug 21, 2023

  1. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    6c59c5d View commit details
  2. fix(source-generator): error reporting

    jwfx authored and matkoch committed Aug 21, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    d8d7579 View commit details
  3. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    824eb52 View commit details
  4. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    48299e7 View commit details
  5. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    8dd5e48 View commit details
  6. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    b7580c9 View commit details
  7. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    7abeb05 View commit details
  8. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    1fa9681 View commit details
  9. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    b904545 View commit details
  10. chore: update CHANGELOG.md

    matkoch committed Aug 21, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    6230b68 View commit details
  11. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    6cf6348 View commit details
  12. chore: regenerate tools

    matkoch committed Aug 21, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    bd429db View commit details
  13. Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    2caf237 View commit details
  14. chore: CHANGELOG.md for 7.0.3

    matkoch committed Aug 21, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    9584bbf View commit details
  15. Merge branch 'hotfix/7.0.3'

    matkoch committed Aug 21, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    matkoch Matthias Koch
    Copy the full SHA
    369ef2b View commit details
Showing with 2,361 additions and 1,294 deletions.
  1. +2 −2 .teamcity/pom.xml
  2. +117 −0 CHANGELOG.md
  3. +1 −1 appveyor.yml
  4. +1 −1 build/Build.CI.AppVeyor.cs
  5. +1 −1 build/Build.GitFlow.cs
  6. +1 −3 source/Nuke.Build/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs
  7. +1 −1 source/Nuke.Build/Execution/ParameterService.cs
  8. +3 −1 source/Nuke.Build/Telemetry/Telemetry.Properties.cs
  9. +3 −3 source/Nuke.Common/CI/TeamCity/Configuration/pom.xml
  10. +5 −7 source/Nuke.Common/CI/TeamCity/TeamCityAttribute.cs
  11. +14 −14 source/Nuke.Common/Tools/MSpec/MSpec.Generated.cs
  12. +5 −5 source/Nuke.Common/Tools/MSpec/MSpec.json
  13. +64 −0 source/Nuke.Common/Tools/Octopus/Octopus.Generated.cs
  14. +12 −0 source/Nuke.Common/Tools/Octopus/Octopus.json
  15. +1 −2 source/Nuke.Common/Tools/Teams/TeamsTasks.cs
  16. +1,725 −1,044 source/Nuke.Common/Tools/Unity/Unity.Generated.cs
  17. +203 −130 source/Nuke.Common/Tools/Unity/Unity.json
  18. +3 −3 source/Nuke.Common/Tools/Unity/{UnitySettingsExtensions.cs → UnityProjectSettingsExtensions.cs}
  19. +41 −0 source/Nuke.Common/Tools/Unity/UnityRunTestsSettingsExtensions.cs
  20. +2 −2 source/Nuke.Common/Tools/Unity/UnityTasks.cs
  21. +1 −0 source/Nuke.Components/ICreateGitHubRelease.cs
  22. +2 −1 source/Nuke.GlobalTool/templates/_build.csproj
  23. +1 −1 source/Nuke.GlobalTool/templates/build.sh
  24. +1 −1 source/Nuke.SolutionModel/Project.cs
  25. +1 −1 source/Nuke.SolutionModel/Solution.cs
  26. +35 −10 source/Nuke.SourceGenerators/StronglyTypedSolutionGenerator.cs
  27. +12 −0 source/Nuke.Tooling.Tests/ArgumentStringHandlerTest.cs
  28. +26 −9 source/Nuke.Tooling/ArgumentStringHandler.cs
  29. +61 −50 source/Nuke.Tooling/ProcessTasks.cs
  30. +3 −1 source/Nuke.Utilities/IO/AbsolutePath.cs
  31. +13 −0 source/Nuke.Utilities/IO/IAbsolutePathHolder.cs
4 changes: 2 additions & 2 deletions .teamcity/pom.xml
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@
<repositories>
<repository>
<id>jetbrains-all</id>
<url>http://download.jetbrains.com/teamcity-repository</url>
<url>https://download.jetbrains.com/teamcity-repository</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
@@ -32,7 +32,7 @@
<pluginRepositories>
<pluginRepository>
<id>JetBrains</id>
<url>http://download.jetbrains.com/teamcity-repository</url>
<url>https://download.jetbrains.com/teamcity-repository</url>
</pluginRepository>
</pluginRepositories>

117 changes: 117 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -6,6 +6,24 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [vNext]

## [7.0.3] / 2023-08-21
- Fixed enumeration value sets to exclude non-public fields
- Fixed check for `NUKE_ENTERPRISE_TOKEN` in `build.sh` bootstrapping script
- Fixed default warnings with suppression
- Fixed telemetry to treat types as _common_ when their assembly points to home repository
- Fixed filtering of secrets in CLT `Output` collection
- Fixed handling of `AbsolutePath` collections in `ArgumentStringHandler`
- Fixed handling of `IAbsolutePathHolder` in `ArgumentStringHandler`
- Fixed handling of `relativePath` for `SolutionAttribute` in `StronglyTypedSolutionGenerator`
- Fixed error reporting in `StronglyTypedSolutionGenerator`
- Fixed TeamCity `pom.xml` template to use HTTPS
- Fixed duplicated payload serialization in `TeamsTasks`
- Fixed missing arguments in `OctopusTasks`
- Fixed missing command in `UnityTasks`
- Fixed missing members in `UnitBuildTarget`
- Fixed argument formatting in `MSpecTasks`
- Fixed assertion in `UnityTasks`

## [7.0.2] / 2023-05-19
- Fixed string-based command-line tool tasks to not require interpolated strings
- Fixed secret filtering
@@ -1357,3 +1375,102 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
[0.3.1]: https://github.com/nuke-build/nuke/compare/0.2.10...0.3.1
[0.2.10]: https://github.com/nuke-build/nuke/compare/0.2.0...0.2.10
[0.2.0]: https://github.com/nuke-build/nuke/tree/0.2.0

[vNext]: https://github.com/nuke-build/nuke/compare/7.0.3...HEAD
[7.0.3]: https://github.com/nuke-build/nuke/compare/7.0.2...7.0.3
[7.0.2]: https://github.com/nuke-build/nuke/compare/7.0.1...7.0.2
[7.0.1]: https://github.com/nuke-build/nuke/compare/7.0.0...7.0.1
[7.0.0]: https://github.com/nuke-build/nuke/compare/6.3.0...7.0.0
[6.3.0]: https://github.com/nuke-build/nuke/compare/6.2.1...6.3.0
[6.2.1]: https://github.com/nuke-build/nuke/compare/6.2.0...6.2.1
[6.2.0]: https://github.com/nuke-build/nuke/compare/6.1.2...6.2.0
[6.1.2]: https://github.com/nuke-build/nuke/compare/6.1.1...6.1.2
[6.1.1]: https://github.com/nuke-build/nuke/compare/6.1.0...6.1.1
[6.1.0]: https://github.com/nuke-build/nuke/compare/6.0.3...6.1.0
[6.0.3]: https://github.com/nuke-build/nuke/compare/6.0.2...6.0.3
[6.0.2]: https://github.com/nuke-build/nuke/compare/6.0.1...6.0.2
[6.0.1]: https://github.com/nuke-build/nuke/compare/6.0.0...6.0.1
[6.0.0]: https://github.com/nuke-build/nuke/compare/5.3.0...6.0.0
[5.3.0]: https://github.com/nuke-build/nuke/compare/5.2.1...5.3.0
[5.2.1]: https://github.com/nuke-build/nuke/compare/5.2.0...5.2.1
[5.2.0]: https://github.com/nuke-build/nuke/compare/5.1.4...5.2.0
[5.1.4]: https://github.com/nuke-build/nuke/compare/5.1.3...5.1.4
[5.1.3]: https://github.com/nuke-build/nuke/compare/5.1.2...5.1.3
[5.1.2]: https://github.com/nuke-build/nuke/compare/5.1.1...5.1.2
[5.1.1]: https://github.com/nuke-build/nuke/compare/5.1.0...5.1.1
[5.1.0]: https://github.com/nuke-build/nuke/compare/5.0.2...5.1.0
[5.0.2]: https://github.com/nuke-build/nuke/compare/5.0.1...5.0.2
[5.0.1]: https://github.com/nuke-build/nuke/compare/5.0.0...5.0.1
[5.0.0]: https://github.com/nuke-build/nuke/compare/0.25.0...5.0.0
[0.25.0]: https://github.com/nuke-build/nuke/compare/0.24.11...0.25.0
[0.24.11]: https://github.com/nuke-build/nuke/compare/0.24.10...0.24.11
[0.24.10]: https://github.com/nuke-build/nuke/compare/0.24.9...0.24.10
[0.24.9]: https://github.com/nuke-build/nuke/compare/0.24.8...0.24.9
[0.24.8]: https://github.com/nuke-build/nuke/compare/0.24.7...0.24.8
[0.24.7]: https://github.com/nuke-build/nuke/compare/0.24.6...0.24.7
[0.24.6]: https://github.com/nuke-build/nuke/compare/0.24.5...0.24.6
[0.24.5]: https://github.com/nuke-build/nuke/compare/0.24.4...0.24.5
[0.24.4]: https://github.com/nuke-build/nuke/compare/0.24.2...0.24.4
[0.24.2]: https://github.com/nuke-build/nuke/compare/0.24.1...0.24.2
[0.24.1]: https://github.com/nuke-build/nuke/compare/0.24.0...0.24.1
[0.24.0]: https://github.com/nuke-build/nuke/compare/0.23.7...0.24.0
[0.23.7]: https://github.com/nuke-build/nuke/compare/0.23.6...0.23.7
[0.23.6]: https://github.com/nuke-build/nuke/compare/0.23.5...0.23.6
[0.23.5]: https://github.com/nuke-build/nuke/compare/0.23.4...0.23.5
[0.23.4]: https://github.com/nuke-build/nuke/compare/0.23.3...0.23.4
[0.23.3]: https://github.com/nuke-build/nuke/compare/0.23.2...0.23.3
[0.23.2]: https://github.com/nuke-build/nuke/compare/0.23.1...0.23.2
[0.23.1]: https://github.com/nuke-build/nuke/compare/0.23.0...0.23.1
[0.23.0]: https://github.com/nuke-build/nuke/compare/0.22.2...0.23.0
[0.22.2]: https://github.com/nuke-build/nuke/compare/0.22.1...0.22.2
[0.22.1]: https://github.com/nuke-build/nuke/compare/0.22.0...0.22.1
[0.22.0]: https://github.com/nuke-build/nuke/compare/0.21.2...0.22.0
[0.21.2]: https://github.com/nuke-build/nuke/compare/0.21.1...0.21.2
[0.21.1]: https://github.com/nuke-build/nuke/compare/0.21.0...0.21.1
[0.21.0]: https://github.com/nuke-build/nuke/compare/0.20.1...0.21.0
[0.20.1]: https://github.com/nuke-build/nuke/compare/0.20.0...0.20.1
[0.20.0]: https://github.com/nuke-build/nuke/compare/0.19.2...0.20.0
[0.19.2]: https://github.com/nuke-build/nuke/compare/0.19.1...0.19.2
[0.19.1]: https://github.com/nuke-build/nuke/compare/0.19.0...0.19.1
[0.19.0]: https://github.com/nuke-build/nuke/compare/0.18.0...0.19.0
[0.18.0]: https://github.com/nuke-build/nuke/compare/0.17.7...0.18.0
[0.17.7]: https://github.com/nuke-build/nuke/compare/0.17.6...0.17.7
[0.17.6]: https://github.com/nuke-build/nuke/compare/0.17.5...0.17.6
[0.17.5]: https://github.com/nuke-build/nuke/compare/0.17.4...0.17.5
[0.17.4]: https://github.com/nuke-build/nuke/compare/0.17.3...0.17.4
[0.17.3]: https://github.com/nuke-build/nuke/compare/0.17.2...0.17.3
[0.17.2]: https://github.com/nuke-build/nuke/compare/0.17.1...0.17.2
[0.17.1]: https://github.com/nuke-build/nuke/compare/0.17.0...0.17.1
[0.17.0]: https://github.com/nuke-build/nuke/compare/0.16.0...0.17.0
[0.16.0]: https://github.com/nuke-build/nuke/compare/0.15.0...0.16.0
[0.15.0]: https://github.com/nuke-build/nuke/compare/0.14.1...0.15.0
[0.14.1]: https://github.com/nuke-build/nuke/compare/0.14.0...0.14.1
[0.14.0]: https://github.com/nuke-build/nuke/compare/0.13.0...0.14.0
[0.13.0]: https://github.com/nuke-build/nuke/compare/0.12.4...0.13.0
[0.12.4]: https://github.com/nuke-build/nuke/compare/0.12.3...0.12.4
[0.12.3]: https://github.com/nuke-build/nuke/compare/0.12.2...0.12.3
[0.12.2]: https://github.com/nuke-build/nuke/compare/0.12.1...0.12.2
[0.12.1]: https://github.com/nuke-build/nuke/compare/0.12.0...0.12.1
[0.12.0]: https://github.com/nuke-build/nuke/compare/0.11.1...0.12.0
[0.11.1]: https://github.com/nuke-build/nuke/compare/0.11.0...0.11.1
[0.11.0]: https://github.com/nuke-build/nuke/compare/0.10.5...0.11.0
[0.10.5]: https://github.com/nuke-build/nuke/compare/0.10.4...0.10.5
[0.10.4]: https://github.com/nuke-build/nuke/compare/0.10.3...0.10.4
[0.10.3]: https://github.com/nuke-build/nuke/compare/0.10.2...0.10.3
[0.10.2]: https://github.com/nuke-build/nuke/compare/0.10.1...0.10.2
[0.10.1]: https://github.com/nuke-build/nuke/compare/0.10.0...0.10.1
[0.10.0]: https://github.com/nuke-build/nuke/compare/0.9.1...0.10.0
[0.9.1]: https://github.com/nuke-build/nuke/compare/0.9.0...0.9.1
[0.9.0]: https://github.com/nuke-build/nuke/compare/0.8.0...0.9.0
[0.8.0]: https://github.com/nuke-build/nuke/compare/0.7.0...0.8.0
[0.7.0]: https://github.com/nuke-build/nuke/compare/0.6.2...0.7.0
[0.6.2]: https://github.com/nuke-build/nuke/compare/0.6.1...0.6.2
[0.6.1]: https://github.com/nuke-build/nuke/compare/0.6.0...0.6.1
[0.6.0]: https://github.com/nuke-build/nuke/compare/0.5.3...0.6.0
[0.5.3]: https://github.com/nuke-build/nuke/compare/0.5.2...0.5.3
[0.5.2]: https://github.com/nuke-build/nuke/compare/0.5.0...0.5.2
[0.5.0]: https://github.com/nuke-build/nuke/compare/0.4.0...0.5.0
[0.4.0]: https://github.com/nuke-build/nuke/compare/0.3.1...0.4.0
[0.3.1]: https://github.com/nuke-build/nuke/compare/0.2.10...0.3.1
[0.2.10]: https://github.com/nuke-build/nuke/compare/0.2.0...0.2.10
[0.2.0]: https://github.com/nuke-build/nuke/tree/0.2.0
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ environment:
PublicNuGetApiKey:
secure: dSaquYHVNEAZO+hhGGoGqeHaVP99BP8koHTTqcD3WInWBTmB7yE4CzxZ1pWypnX2
GitHubReleaseGitHubToken:
secure: a5UfxXiDEere9GkCCN9TUZJWacHMSkLKJi5UIqUDk7eB0DyoZomXaK918QWkyrbGlkz7hWIRIBGT/z2lCld/DgM9QP5Gx8PvEglDpTSILmGiQ2wTDySc78gG7h3dfQxg
secure: a5UfxXiDEere9GkCCN9TUZMUdyzjC01cvHthbMLtSl0w+/giDwOyApiHRRRrwyKL5yd/vjD6xDBTBj+W/ZxKzMtzC+gDCSTNO8bSJG9Rh2n9eGzLtWzEFDw/zDYZXe5N
SignPathApiToken:
secure: uQTH2MxpqiqWTy7EJkjtNc43ipG17EUOQN99QsODRNgtNEcikDaP0t4ylekK/ibn
TwitterConsumerKey:
2 changes: 1 addition & 1 deletion build/Build.CI.AppVeyor.cs
Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@
InvokedTargets = new[] { nameof(ITest.Test), nameof(IPack.Pack) },
Secrets = new string[0])]
[AppVeyorSecret(nameof(PublicNuGetApiKey), "dSaquYHVNEAZO+hhGGoGqeHaVP99BP8koHTTqcD3WInWBTmB7yE4CzxZ1pWypnX2")]
[AppVeyorSecret(ICreateGitHubRelease.GitHubRelease + nameof(ICreateGitHubRelease.GitHubToken), "a5UfxXiDEere9GkCCN9TUZJWacHMSkLKJi5UIqUDk7eB0DyoZomXaK918QWkyrbGlkz7hWIRIBGT/z2lCld/DgM9QP5Gx8PvEglDpTSILmGiQ2wTDySc78gG7h3dfQxg")]
[AppVeyorSecret(ICreateGitHubRelease.GitHubRelease + nameof(ICreateGitHubRelease.GitHubToken), "a5UfxXiDEere9GkCCN9TUZMUdyzjC01cvHthbMLtSl0w+/giDwOyApiHRRRrwyKL5yd/vjD6xDBTBj+W/ZxKzMtzC+gDCSTNO8bSJG9Rh2n9eGzLtWzEFDw/zDYZXe5N")]
[AppVeyorSecret(ISignPackages.SignPath + nameof(ISignPackages.ApiToken), "uQTH2MxpqiqWTy7EJkjtNc43ipG17EUOQN99QsODRNgtNEcikDaP0t4ylekK/ibn")]
[AppVeyorSecret(IHazTwitterCredentials.Twitter + nameof(IHazTwitterCredentials.ConsumerKey), "mYr1Uw8bcVUyl1P0prdaUFurdiF7V283BSRlQHxe2Zg=")]
[AppVeyorSecret(IHazTwitterCredentials.Twitter + nameof(IHazTwitterCredentials.ConsumerSecret), "pGt5X6KOwj/bLM4A5mnDRBqPxt7o7UreSlZSFmbfZwyfKZnhfFRnr20fXWjVqToVw7NSp30s6GxjswTrQSIogw==")]
2 changes: 1 addition & 1 deletion build/Build.GitFlow.cs
Original file line number Diff line number Diff line change
@@ -51,7 +51,7 @@ partial class Build
System.Console.ReadKey();

Git($"add {changelogFile}");
Git($"commit -m \"Finalize {Path.GetFileName(changelogFile)} for {MajorMinorPatchVersion}\"");
Git($"commit -m \"chore: {Path.GetFileName(changelogFile)} for {MajorMinorPatchVersion}\"");
});

[UsedImplicitly]
Original file line number Diff line number Diff line change
@@ -49,9 +49,7 @@ string DecryptValue(string profile, string name, string value)

// TODO: Abstract AbsolutePath/Solution/Project etc.
string ConvertValue(Type scalarType, string value)
=> scalarType == typeof(AbsolutePath) ||
typeof(Solution).IsAssignableFrom(scalarType) ||
scalarType == typeof(Project)
=> scalarType.IsAssignableTo(typeof(IAbsolutePathHolder))
? PathConstruction.HasPathRoot(value)
? value
: EnvironmentInfo.WorkingDirectory.GetUnixRelativePathTo(Build.RootDirectory / value)
2 changes: 1 addition & 1 deletion source/Nuke.Build/Execution/ParameterService.cs
Original file line number Diff line number Diff line change
@@ -98,7 +98,7 @@ public static string GetParameterDescription(MemberInfo member)

IEnumerable<(string Text, object Object)> TryGetFromEnumerationClass() =>
memberType.IsSubclassOf(typeof(Enumeration))
? memberType.GetFields(Static).Select(x => (x.Name, x.GetValue()))
? memberType.GetFields(BindingFlags.Public | BindingFlags.Static).Select(x => (x.Name, x.GetValue()))
: null;

IEnumerable<(string Text, object Object)> TryGetFromEnum()
4 changes: 3 additions & 1 deletion source/Nuke.Build/Telemetry/Telemetry.Properties.cs
Original file line number Diff line number Diff line change
@@ -124,7 +124,9 @@ private static IDictionary<string, string> GetGeneratorProperties(Type hostType,

private static bool IsCommonType(Type type)
{
return type.Assembly == typeof(NukeBuild).Assembly;
return type.Assembly
.GetCustomAttributes<AssemblyMetadataAttribute>()
.Any(x => x is { Key: "RepositoryUrl", Value: "https://github.com/nuke-build/nuke" });
}

private static bool IsCustomType(Type type)
6 changes: 3 additions & 3 deletions source/Nuke.Common/CI/TeamCity/Configuration/pom.xml
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@
<repositories>
<repository>
<id>jetbrains-all</id>
<url>http://download.jetbrains.com/teamcity-repository</url>
<url>https://download.jetbrains.com/teamcity-repository</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
@@ -32,7 +32,7 @@
<pluginRepositories>
<pluginRepository>
<id>JetBrains</id>
<url>http://download.jetbrains.com/teamcity-repository</url>
<url>https://download.jetbrains.com/teamcity-repository</url>
</pluginRepository>
</pluginRepositories>

@@ -101,4 +101,4 @@
<scope>compile</scope>
</dependency>
</dependencies>
</project>
</project>
12 changes: 5 additions & 7 deletions source/Nuke.Common/CI/TeamCity/TeamCityAttribute.cs
Original file line number Diff line number Diff line change
@@ -277,20 +277,18 @@ protected virtual TeamCityParameter GetParameter(MemberInfo member, bool require
var valueSet = ParameterService.GetParameterValueSet(member, Build);
var valueSeparator = attribute.NotNull().Separator ?? " ";

// TODO: Abstract AbsolutePath/Solution/Project etc.
var memberType = member.GetMemberType();
var defaultValue = !member.HasCustomAttribute<SecretAttribute>() ? member.GetValue(Build) : default(string);
// TODO: enumerables of ...
if (defaultValue != null &&
(member.GetMemberType() == typeof(AbsolutePath) ||
member.GetMemberType() == typeof(Solution) ||
member.GetMemberType() == typeof(Project)))
(memberType.IsAssignableTo(typeof(IAbsolutePathHolder))))
defaultValue = Build.RootDirectory.GetUnixRelativePathTo(defaultValue.ToString());

TeamCityParameterType GetParameterType()
{
if (member.HasCustomAttribute<SecretAttribute>())
return TeamCityParameterType.Password;
if (member.GetMemberType() == typeof(bool))
if (memberType == typeof(bool))
return TeamCityParameterType.Checkbox;
if (valueSet != null)
return TeamCityParameterType.Select;
@@ -304,11 +302,11 @@ TeamCityParameterType GetParameterType()
Description = attribute.Description,
Options = valueSet?.ToDictionary(x => x.Item1, x => x.Item2),
Type = GetParameterType(),
DefaultValue = member.GetMemberType().IsArray && defaultValue is IEnumerable enumerable
DefaultValue = memberType.IsArray && defaultValue is IEnumerable enumerable
? enumerable.Cast<object>().Select(x => x.ToString()).Join(valueSeparator)
: defaultValue?.ToString(),
Display = required ? TeamCityParameterDisplay.Prompt : TeamCityParameterDisplay.Normal,
AllowMultiple = member.GetMemberType().IsArray && valueSet is not null,
AllowMultiple = memberType.IsArray && valueSet is not null,
ValueSeparator = valueSeparator
};
}
28 changes: 14 additions & 14 deletions source/Nuke.Common/Tools/MSpec/MSpec.Generated.cs
Original file line number Diff line number Diff line change
@@ -64,9 +64,9 @@ public static IReadOnlyCollection<Output> MSpec(ArgumentStringHandler arguments,
/// <li><c>--teamcity</c> via <see cref="MSpecSettings.TeamCity"/></li>
/// <li><c>--timeinfo</c> via <see cref="MSpecSettings.TimeInfo"/></li>
/// <li><c>--xml</c> via <see cref="MSpecSettings.XmlOutput"/></li>
/// <li><c>-f</c> via <see cref="MSpecSettings.Filters"/></li>
/// <li><c>-i</c> via <see cref="MSpecSettings.Includes"/></li>
/// <li><c>-x</c> via <see cref="MSpecSettings.Excludes"/></li>
/// <li><c>-exclude</c> via <see cref="MSpecSettings.Excludes"/></li>
/// <li><c>-filters</c> via <see cref="MSpecSettings.Filters"/></li>
/// <li><c>-include</c> via <see cref="MSpecSettings.Includes"/></li>
/// </ul>
/// </remarks>
public static IReadOnlyCollection<Output> MSpec(MSpecSettings toolSettings = null)
@@ -94,9 +94,9 @@ public static IReadOnlyCollection<Output> MSpec(MSpecSettings toolSettings = nul
/// <li><c>--teamcity</c> via <see cref="MSpecSettings.TeamCity"/></li>
/// <li><c>--timeinfo</c> via <see cref="MSpecSettings.TimeInfo"/></li>
/// <li><c>--xml</c> via <see cref="MSpecSettings.XmlOutput"/></li>
/// <li><c>-f</c> via <see cref="MSpecSettings.Filters"/></li>
/// <li><c>-i</c> via <see cref="MSpecSettings.Includes"/></li>
/// <li><c>-x</c> via <see cref="MSpecSettings.Excludes"/></li>
/// <li><c>-exclude</c> via <see cref="MSpecSettings.Excludes"/></li>
/// <li><c>-filters</c> via <see cref="MSpecSettings.Filters"/></li>
/// <li><c>-include</c> via <see cref="MSpecSettings.Includes"/></li>
/// </ul>
/// </remarks>
public static IReadOnlyCollection<Output> MSpec(Configure<MSpecSettings> configurator)
@@ -121,9 +121,9 @@ public static IReadOnlyCollection<Output> MSpec(Configure<MSpecSettings> configu
/// <li><c>--teamcity</c> via <see cref="MSpecSettings.TeamCity"/></li>
/// <li><c>--timeinfo</c> via <see cref="MSpecSettings.TimeInfo"/></li>
/// <li><c>--xml</c> via <see cref="MSpecSettings.XmlOutput"/></li>
/// <li><c>-f</c> via <see cref="MSpecSettings.Filters"/></li>
/// <li><c>-i</c> via <see cref="MSpecSettings.Includes"/></li>
/// <li><c>-x</c> via <see cref="MSpecSettings.Excludes"/></li>
/// <li><c>-exclude</c> via <see cref="MSpecSettings.Excludes"/></li>
/// <li><c>-filters</c> via <see cref="MSpecSettings.Filters"/></li>
/// <li><c>-include</c> via <see cref="MSpecSettings.Includes"/></li>
/// </ul>
/// </remarks>
public static IEnumerable<(MSpecSettings Settings, IReadOnlyCollection<Output> Output)> MSpec(CombinatorialConfigure<MSpecSettings> configurator, int degreeOfParallelism = 1, bool completeOnFailure = false)
@@ -210,11 +210,11 @@ protected override Arguments ConfigureProcessArguments(Arguments arguments)
{
arguments
.Add("{value}", Assemblies, separator: ' ')
.Add("-f={value}", Filters, separator: ',')
.Add("-i={value}", Includes, separator: ',')
.Add("-x={value}", Excludes, separator: ',')
.Add("--html={value}", HtmlOutput)
.Add("--xml={value}", XmlOutput)
.Add("-filters {value}", Filters, separator: ',')
.Add("-include {value}", Includes, separator: ',')
.Add("-exclude {value}", Excludes, separator: ',')
.Add("--html {value}", HtmlOutput)
.Add("--xml {value}", XmlOutput)
.Add("--teamcity", TeamCity)
.Add("--no-teamcity-autodetect", NoTeamCity)
.Add("--appveyor", AppVeyor)
Loading