diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9649039 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.nuke/build.schema.json text=auto diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c78849e..04a58f2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -30,3 +30,17 @@ updates: commit-message: prefix: "chore" include: "scope" + - package-ecosystem: "dotnet-sdk" + directory: "/" + schedule: + interval: "weekly" + day: "wednesday" + ignore: + - dependency-name: "*" + update-types: + - "version-update:semver-major" + assignees: + - "rhysparry" + commit-message: + prefix: "chore" + include: "scope" diff --git a/.github/workflows/dotnet-ci-build.yml b/.github/workflows/dotnet-ci-build.yml index 21a375a..5f93fd8 100644 --- a/.github/workflows/dotnet-ci-build.yml +++ b/.github/workflows/dotnet-ci-build.yml @@ -16,20 +16,15 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - - name: Setup .NET Core + with: + fetch-depth: 0 + - name: Setup .NET Core 8 uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' - - - name: Install just - uses: extractions/setup-just@v2 - - - name: Restore dependencies - run: just --no-deps restore - - - name: Build - run: just --no-deps build - + - name: "Install tools" + uses: taiki-e/install-action@v2 + with: + tool: just@1.36.0,git-cliff@2.6.1 - name: Test - run: just --no-deps test \ No newline at end of file + run: just test \ No newline at end of file diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml index f5e069b..365e242 100644 --- a/.github/workflows/nuget-publish.yml +++ b/.github/workflows/nuget-publish.yml @@ -8,38 +8,36 @@ on: jobs: build: runs-on: ubuntu-latest - steps: - name: Checkout uses: actions/checkout@v4 - - - name: Setup .NET Core + with: + fetch-depth: 0 + - name: Setup .NET Core 8 uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' - - - name: Install just - uses: extractions/setup-just@v2 - - - name: Restore dependencies - run: just --no-deps restore - - - name: Build - run: just --no-deps build - + - name: "Install tools" + uses: taiki-e/install-action@v2 + with: + tool: just@1.36.0,git-cliff@2.6.1 - name: Test - run: just --no-deps test - + run: just test + if: ${{ ! startsWith(github.ref, 'refs/tags/v') }} - name: Pack - run: just --no-deps pack + run: just pack + if: startsWith(github.ref, 'refs/tags/v') + - name: Create Release Notes + run: just release-notes if: startsWith(github.ref, 'refs/tags/v') - - name: Create a release with the NuGet Package uses: softprops/action-gh-release@v2 with: - files: '**/*.nupkg' + body_path: artifacts/RELEASE-NOTES.md + files: | + artifacts/*.nupkg + artifacts/*.snupkg if: startsWith(github.ref, 'refs/tags/v') - - name: Load NuGet API Key uses: 1password/load-secrets-action@v2 with: @@ -48,8 +46,6 @@ jobs: OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} NUGET_API_KEY: "op://GitHub Actions/NuGet API Dirt/credential" if: startsWith(github.ref, 'refs/tags/v') - - name: Push NuGet package - run: just --no-deps nuget-push - if: startsWith(github.ref, 'refs/tags/v') - + run: just nuget-push-no-pack + if: startsWith(github.ref, 'refs/tags/v') \ No newline at end of file diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json new file mode 100644 index 0000000..6a6f699 --- /dev/null +++ b/.nuke/build.schema.json @@ -0,0 +1,137 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "definitions": { + "Host": { + "type": "string", + "enum": [ + "AppVeyor", + "AzurePipelines", + "Bamboo", + "Bitbucket", + "Bitrise", + "GitHubActions", + "GitLab", + "Jenkins", + "Rider", + "SpaceAutomation", + "TeamCity", + "Terminal", + "TravisCI", + "VisualStudio", + "VSCode" + ] + }, + "ExecutableTarget": { + "type": "string", + "enum": [ + "Clean", + "Compile", + "Pack", + "Publish", + "Restore", + "Test" + ] + }, + "Verbosity": { + "type": "string", + "description": "", + "enum": [ + "Verbose", + "Normal", + "Minimal", + "Quiet" + ] + }, + "NukeBuild": { + "properties": { + "Continue": { + "type": "boolean", + "description": "Indicates to continue a previously failed build attempt" + }, + "Help": { + "type": "boolean", + "description": "Shows the help text for this build assembly" + }, + "Host": { + "description": "Host for execution. Default is 'automatic'", + "$ref": "#/definitions/Host" + }, + "NoLogo": { + "type": "boolean", + "description": "Disables displaying the NUKE logo" + }, + "Partition": { + "type": "string", + "description": "Partition to use on CI" + }, + "Plan": { + "type": "boolean", + "description": "Shows the execution plan (HTML)" + }, + "Profile": { + "type": "array", + "description": "Defines the profiles to load", + "items": { + "type": "string" + } + }, + "Root": { + "type": "string", + "description": "Root directory during build execution" + }, + "Skip": { + "type": "array", + "description": "List of targets to be skipped. Empty list skips all dependencies", + "items": { + "$ref": "#/definitions/ExecutableTarget" + } + }, + "Target": { + "type": "array", + "description": "List of targets to be invoked. Default is '{default_target}'", + "items": { + "$ref": "#/definitions/ExecutableTarget" + } + }, + "Verbosity": { + "description": "Logging verbosity during build execution. Default is 'Normal'", + "$ref": "#/definitions/Verbosity" + } + } + } + }, + "allOf": [ + { + "properties": { + "Configuration": { + "type": "string", + "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", + "enum": [ + "Debug", + "Release" + ] + }, + "GithubRef": { + "type": "string", + "description": "GitHub Ref" + }, + "NuGetApiKey": { + "type": "string", + "description": "NuGet API key", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + }, + "Solution": { + "type": "string", + "description": "Path to a solution file that is automatically loaded" + }, + "Version": { + "type": "string", + "description": "Version to use" + } + } + }, + { + "$ref": "#/definitions/NukeBuild" + } + ] +} diff --git a/.nuke/parameters.json b/.nuke/parameters.json new file mode 100644 index 0000000..7581de4 --- /dev/null +++ b/.nuke/parameters.json @@ -0,0 +1,5 @@ +{ + "$schema": "./build.schema.json", + "Solution": "Dirt.Env.sln", + "Version": "1.2.1" +} diff --git a/.nuke/temp/build-attempt.log b/.nuke/temp/build-attempt.log new file mode 100644 index 0000000..7cd11b2 --- /dev/null +++ b/.nuke/temp/build-attempt.log @@ -0,0 +1,4 @@ +0cbc6611f5540bd0809a388dc95a615b +Restore +Compile +Test diff --git a/.nuke/temp/build.2024-12-08_15-24-05.log b/.nuke/temp/build.2024-12-08_15-24-05.log new file mode 100644 index 0000000..27a95be --- /dev/null +++ b/.nuke/temp/build.2024-12-08_15-24-05.log @@ -0,0 +1,194 @@ +V | | ArgumentsFromParametersFile.OnBuildCreated (150) +V | | HandleReSharperSurrogateArguments.OnBuildCreated (150) +V | | InjectParameterValues.OnBuildCreated (100) +V | | HandleShellCompletion.OnBuildCreated (75) +V | | GenerateBuildServerConfigurations.OnBuildCreated (50) +V | | InvokeBuildServerConfigurationGeneration.OnBuildCreated (45) +V | | UpdateNotification.OnBuildCreated (10) +V | | UnsetVisualStudioEnvironmentVariables.OnBuildCreated (0) +V | | HandleVisualStudioDebugging.OnBuildCreated (0) +V | | EventInvoker.OnBuildCreated (-3.4028235E+38) +V | | HandlePlanRequests.OnBuildInitialized (10) +V | | HandleHelpRequests.OnBuildInitialized (5) +V | | Telemetry.OnBuildInitialized (0) +V | | Sending BuildStarted telemetry event ... +V | | build_components = +V | | build_type = Project +V | | compile_time = +V | | config_generators = +V | | host = Terminal +V | | num_custom_components = 0 +V | | num_custom_extensions = 0 +V | | num_partitioned_targets = 0 +V | | num_secrets = 1 +V | | num_targets = 6 +V | | os_architecture = Arm64 +V | | os_platform = OSX +V | | repo_branch = main +V | | repo_commit = b6c9dc +V | | repo_provider = GitHub +V | | repo_url = 3bcd90 +V | | target_framework = .NETCoreApp,Version=v8.0 +V | | version_dotnet_sdk = 9.0.100 +V | | version_nuke_common = 9.0.3 +V | | version_nuke_global_tool = +V | | InjectNonParameterValues.OnBuildInitialized (-100) +W | | Solution /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln has active build configurations for the build project. +Either enable SuppressBuildProjectCheck on Build.Solution or remove the following entries from the solution file: + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Release|Any CPU.Build.0 = Release|Any CPU +V | | EventInvoker.OnBuildInitialized (-3.4028235E+38) +V | Restore | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Restore | > /usr/local/share/dotnet/dotnet restore /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln +V | Restore | @ /Users/rhysparry/src/Dirt.Env +D | Restore | Determining projects to restore... +D | Restore | Restored /Users/rhysparry/src/Dirt.Env/Dirt.Env/Dirt.Env.csproj (in 31 ms). +D | Restore | Restored /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/Dirt.Env.Tests.csproj (in 88 ms). +D | Restore | 1 of 3 projects are up-to-date for restore. +V | Restore | Telemetry.OnTargetSucceeded (0) +V | Restore | Sending TargetSucceeded telemetry event ... +V | Restore | build_components = +V | Restore | build_type = Project +V | Restore | compile_time = +V | Restore | config_generators = +V | Restore | host = Terminal +V | Restore | num_custom_components = 0 +V | Restore | num_custom_extensions = 0 +V | Restore | num_partitioned_targets = 0 +V | Restore | num_secrets = 1 +V | Restore | num_targets = 6 +V | Restore | os_architecture = Arm64 +V | Restore | os_platform = OSX +V | Restore | repo_branch = main +V | Restore | repo_commit = b6c9dc +V | Restore | repo_provider = GitHub +V | Restore | repo_url = 3bcd90 +V | Restore | target_current_partition = 1 +V | Restore | target_duration = 1 +V | Restore | target_framework = .NETCoreApp,Version=v8.0 +V | Restore | target_name = Restore +V | Restore | target_total_partitions = 1 +V | Restore | version_dotnet_sdk = 9.0.100 +V | Restore | version_nuke_common = 9.0.3 +V | Restore | version_nuke_global_tool = +V | Restore | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Compile | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Compile | > /usr/local/share/dotnet/dotnet build /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --property:Version=1.1.0-dev.01JEJBK4DDY6329WJ73ZV832S8 --property:AssemblyVersion=1.1.0 --no-restore +V | Compile | @ /Users/rhysparry/src/Dirt.Env +D | Compile | Dirt.Env -> /Users/rhysparry/src/Dirt.Env/Dirt.Env/bin/Debug/net8.0/Dirt.Env.dll +D | Compile | _build -> /Users/rhysparry/src/Dirt.Env/build/bin/Debug/_build.dll +D | Compile | Dirt.Env.Tests -> /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll +D | Compile | +D | Compile | Build succeeded. +D | Compile | 0 Warning(s) +D | Compile | 0 Error(s) +D | Compile | +D | Compile | Time Elapsed 00:00:00.69 +V | Compile | Telemetry.OnTargetSucceeded (0) +V | Compile | Sending TargetSucceeded telemetry event ... +V | Compile | build_components = +V | Compile | build_type = Project +V | Compile | compile_time = +V | Compile | config_generators = +V | Compile | host = Terminal +V | Compile | num_custom_components = 0 +V | Compile | num_custom_extensions = 0 +V | Compile | num_partitioned_targets = 0 +V | Compile | num_secrets = 1 +V | Compile | num_targets = 6 +V | Compile | os_architecture = Arm64 +V | Compile | os_platform = OSX +V | Compile | repo_branch = main +V | Compile | repo_commit = b6c9dc +V | Compile | repo_provider = GitHub +V | Compile | repo_url = 3bcd90 +V | Compile | target_current_partition = 1 +V | Compile | target_duration = 1 +V | Compile | target_framework = .NETCoreApp,Version=v8.0 +V | Compile | target_name = Compile +V | Compile | target_total_partitions = 1 +V | Compile | version_dotnet_sdk = 9.0.100 +V | Compile | version_nuke_common = 9.0.3 +V | Compile | version_nuke_global_tool = +V | Compile | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Test | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Test | > /usr/local/share/dotnet/dotnet test /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --verbosity normal --no-build +V | Test | @ /Users/rhysparry/src/Dirt.Env +D | Test | Build started 8/12/2024 3:24:09 pm. +D | Test | 1>Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" on node 1 (VSTest target(s)). +D | Test | 1>ValidateSolutionConfiguration: +D | Test | Building solution configuration "Debug|Any CPU". +D | Test | Test run for /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll (.NETCoreApp,Version=v8.0) +D | Test | VSTest version 17.12.0 (arm64) +D | Test | +D | Test | Starting test execution, please wait... +D | Test | A total of 1 test files matched the specified pattern. +D | Test | [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 8.0.11) +D | Test | [xUnit.net 00:00:00.03] Discovering: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.05] Discovered: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.05] Starting: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvTests.PathWillReturnEmptyEvenIfUnderlyingVariableIsNotPresent [6 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvCreatesSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.IgnoringWhenAppendingPathPreservesOriginal [8 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAutomaticallyHandlesSettingPathVariable [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanAppendPathEvenWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingWindowsPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderDoesNotOverwriteExistingVariablesWhenSkipDuplicate [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SupersedingWhenAppendingPathRemovesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingNixPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsTrueWhenKeyIsPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderOverwritesExistingVariablesByDefault [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderCanUnsetPreviouslySetVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvKeysAreCaseSensitive [1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.NewEnvBuilderCreatesEmptyEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvCanGetAnyPathSeparatedValue [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPath [< 1 ms] +D | Test | [xUnit.net 00:00:00.09] Finished: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPathEventWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderClearsVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SkippingWhenAppendingPathPreservesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanInstantiateUsingSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsFalseWhenKeyIsNotPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.ValueContainsExpectedValues [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanBuildWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAddsVariable [< 1 ms] +D | Test | +D | Test | Test Run Successful. +D | Test | Total tests: 25 +D | Test | Passed: 25 +D | Test | Total time: 0.3365 Seconds +D | Test | 1>Done Building Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" (VSTest target(s)). +D | Test | +D | Test | Build succeeded. +D | Test | 0 Warning(s) +D | Test | 0 Error(s) +D | Test | +D | Test | Time Elapsed 00:00:00.98 +V | Test | Telemetry.OnTargetSucceeded (0) +V | Test | Sending TargetSucceeded telemetry event ... +V | Test | build_components = +V | Test | build_type = Project +V | Test | compile_time = +V | Test | config_generators = +V | Test | host = Terminal +V | Test | num_custom_components = 0 +V | Test | num_custom_extensions = 0 +V | Test | num_partitioned_targets = 0 +V | Test | num_secrets = 1 +V | Test | num_targets = 6 +V | Test | os_architecture = Arm64 +V | Test | os_platform = OSX +V | Test | repo_branch = main +V | Test | repo_commit = b6c9dc +V | Test | repo_provider = GitHub +V | Test | repo_url = 3bcd90 +V | Test | target_current_partition = 1 +V | Test | target_duration = 1 +V | Test | target_framework = .NETCoreApp,Version=v8.0 +V | Test | target_name = Test +V | Test | target_total_partitions = 1 +V | Test | version_dotnet_sdk = 9.0.100 +V | Test | version_nuke_common = 9.0.3 +V | Test | version_nuke_global_tool = +V | Test | EventInvoker.OnTargetSucceeded (-3.4028235E+38) diff --git a/.nuke/temp/build.2024-12-08_15-24-46.log b/.nuke/temp/build.2024-12-08_15-24-46.log new file mode 100644 index 0000000..11a3259 --- /dev/null +++ b/.nuke/temp/build.2024-12-08_15-24-46.log @@ -0,0 +1,194 @@ +V | | ArgumentsFromParametersFile.OnBuildCreated (150) +V | | HandleReSharperSurrogateArguments.OnBuildCreated (150) +V | | InjectParameterValues.OnBuildCreated (100) +V | | HandleShellCompletion.OnBuildCreated (75) +V | | GenerateBuildServerConfigurations.OnBuildCreated (50) +V | | InvokeBuildServerConfigurationGeneration.OnBuildCreated (45) +V | | UpdateNotification.OnBuildCreated (10) +V | | UnsetVisualStudioEnvironmentVariables.OnBuildCreated (0) +V | | HandleVisualStudioDebugging.OnBuildCreated (0) +V | | EventInvoker.OnBuildCreated (-3.4028235E+38) +V | | HandlePlanRequests.OnBuildInitialized (10) +V | | HandleHelpRequests.OnBuildInitialized (5) +V | | Telemetry.OnBuildInitialized (0) +V | | Sending BuildStarted telemetry event ... +V | | build_components = +V | | build_type = Project +V | | compile_time = +V | | config_generators = +V | | host = Terminal +V | | num_custom_components = 0 +V | | num_custom_extensions = 0 +V | | num_partitioned_targets = 0 +V | | num_secrets = 1 +V | | num_targets = 6 +V | | os_architecture = Arm64 +V | | os_platform = OSX +V | | repo_branch = main +V | | repo_commit = b6c9dc +V | | repo_provider = GitHub +V | | repo_url = 3bcd90 +V | | target_framework = .NETCoreApp,Version=v8.0 +V | | version_dotnet_sdk = 8.0.404 +V | | version_nuke_common = 9.0.3 +V | | version_nuke_global_tool = +V | | InjectNonParameterValues.OnBuildInitialized (-100) +W | | Solution /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln has active build configurations for the build project. +Either enable SuppressBuildProjectCheck on Build.Solution or remove the following entries from the solution file: + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Release|Any CPU.Build.0 = Release|Any CPU +V | | EventInvoker.OnBuildInitialized (-3.4028235E+38) +V | Restore | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Restore | > /usr/local/share/dotnet/dotnet restore /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln +V | Restore | @ /Users/rhysparry/src/Dirt.Env +D | Restore | Determining projects to restore... +D | Restore | Restored /Users/rhysparry/src/Dirt.Env/Dirt.Env/Dirt.Env.csproj (in 31 ms). +D | Restore | Restored /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/Dirt.Env.Tests.csproj (in 86 ms). +D | Restore | 1 of 3 projects are up-to-date for restore. +V | Restore | Telemetry.OnTargetSucceeded (0) +V | Restore | Sending TargetSucceeded telemetry event ... +V | Restore | build_components = +V | Restore | build_type = Project +V | Restore | compile_time = +V | Restore | config_generators = +V | Restore | host = Terminal +V | Restore | num_custom_components = 0 +V | Restore | num_custom_extensions = 0 +V | Restore | num_partitioned_targets = 0 +V | Restore | num_secrets = 1 +V | Restore | num_targets = 6 +V | Restore | os_architecture = Arm64 +V | Restore | os_platform = OSX +V | Restore | repo_branch = main +V | Restore | repo_commit = b6c9dc +V | Restore | repo_provider = GitHub +V | Restore | repo_url = 3bcd90 +V | Restore | target_current_partition = 1 +V | Restore | target_duration = 1 +V | Restore | target_framework = .NETCoreApp,Version=v8.0 +V | Restore | target_name = Restore +V | Restore | target_total_partitions = 1 +V | Restore | version_dotnet_sdk = 8.0.404 +V | Restore | version_nuke_common = 9.0.3 +V | Restore | version_nuke_global_tool = +V | Restore | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Compile | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Compile | > /usr/local/share/dotnet/dotnet build /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --property:Version=1.1.0-dev.01JEJBMCADT91P8NVMY4SXJ47W --property:AssemblyVersion=1.1.0 --no-restore +V | Compile | @ /Users/rhysparry/src/Dirt.Env +D | Compile | Dirt.Env -> /Users/rhysparry/src/Dirt.Env/Dirt.Env/bin/Debug/net8.0/Dirt.Env.dll +D | Compile | _build -> /Users/rhysparry/src/Dirt.Env/build/bin/Debug/_build.dll +D | Compile | Dirt.Env.Tests -> /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll +D | Compile | +D | Compile | Build succeeded. +D | Compile | 0 Warning(s) +D | Compile | 0 Error(s) +D | Compile | +D | Compile | Time Elapsed 00:00:01.40 +V | Compile | Telemetry.OnTargetSucceeded (0) +V | Compile | Sending TargetSucceeded telemetry event ... +V | Compile | build_components = +V | Compile | build_type = Project +V | Compile | compile_time = +V | Compile | config_generators = +V | Compile | host = Terminal +V | Compile | num_custom_components = 0 +V | Compile | num_custom_extensions = 0 +V | Compile | num_partitioned_targets = 0 +V | Compile | num_secrets = 1 +V | Compile | num_targets = 6 +V | Compile | os_architecture = Arm64 +V | Compile | os_platform = OSX +V | Compile | repo_branch = main +V | Compile | repo_commit = b6c9dc +V | Compile | repo_provider = GitHub +V | Compile | repo_url = 3bcd90 +V | Compile | target_current_partition = 1 +V | Compile | target_duration = 2 +V | Compile | target_framework = .NETCoreApp,Version=v8.0 +V | Compile | target_name = Compile +V | Compile | target_total_partitions = 1 +V | Compile | version_dotnet_sdk = 8.0.404 +V | Compile | version_nuke_common = 9.0.3 +V | Compile | version_nuke_global_tool = +V | Compile | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Test | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Test | > /usr/local/share/dotnet/dotnet test /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --verbosity normal --no-build +V | Test | @ /Users/rhysparry/src/Dirt.Env +D | Test | Build started 8/12/2024 3:24:50 pm. +D | Test | 1>Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" on node 1 (VSTest target(s)). +D | Test | 1>ValidateSolutionConfiguration: +D | Test | Building solution configuration "Debug|Any CPU". +D | Test | Test run for /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll (.NETCoreApp,Version=v8.0) +D | Test | VSTest version 17.11.1 (arm64) +D | Test | +D | Test | Starting test execution, please wait... +D | Test | A total of 1 test files matched the specified pattern. +D | Test | [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 8.0.11) +D | Test | [xUnit.net 00:00:00.03] Discovering: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.04] Discovered: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.05] Starting: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvTests.PathWillReturnEmptyEvenIfUnderlyingVariableIsNotPresent [6 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvCreatesSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.IgnoringWhenAppendingPathPreservesOriginal [8 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAutomaticallyHandlesSettingPathVariable [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanAppendPathEvenWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingWindowsPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderDoesNotOverwriteExistingVariablesWhenSkipDuplicate [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SupersedingWhenAppendingPathRemovesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingNixPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsTrueWhenKeyIsPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderOverwritesExistingVariablesByDefault [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderCanUnsetPreviouslySetVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.NewEnvBuilderCreatesEmptyEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPath [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvKeysAreCaseSensitive [1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPathEventWhenPathVariableIsNotSet [< 1 ms] +D | Test | [xUnit.net 00:00:00.09] Finished: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderClearsVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvCanGetAnyPathSeparatedValue [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SkippingWhenAppendingPathPreservesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanInstantiateUsingSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsFalseWhenKeyIsNotPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.ValueContainsExpectedValues [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanBuildWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAddsVariable [< 1 ms] +D | Test | +D | Test | Test Run Successful. +D | Test | Total tests: 25 +D | Test | Passed: 25 +D | Test | Total time: 0.3655 Seconds +D | Test | 1>Done Building Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" (VSTest target(s)). +D | Test | +D | Test | Build succeeded. +D | Test | 0 Warning(s) +D | Test | 0 Error(s) +D | Test | +D | Test | Time Elapsed 00:00:00.96 +V | Test | Telemetry.OnTargetSucceeded (0) +V | Test | Sending TargetSucceeded telemetry event ... +V | Test | build_components = +V | Test | build_type = Project +V | Test | compile_time = +V | Test | config_generators = +V | Test | host = Terminal +V | Test | num_custom_components = 0 +V | Test | num_custom_extensions = 0 +V | Test | num_partitioned_targets = 0 +V | Test | num_secrets = 1 +V | Test | num_targets = 6 +V | Test | os_architecture = Arm64 +V | Test | os_platform = OSX +V | Test | repo_branch = main +V | Test | repo_commit = b6c9dc +V | Test | repo_provider = GitHub +V | Test | repo_url = 3bcd90 +V | Test | target_current_partition = 1 +V | Test | target_duration = 1 +V | Test | target_framework = .NETCoreApp,Version=v8.0 +V | Test | target_name = Test +V | Test | target_total_partitions = 1 +V | Test | version_dotnet_sdk = 8.0.404 +V | Test | version_nuke_common = 9.0.3 +V | Test | version_nuke_global_tool = +V | Test | EventInvoker.OnTargetSucceeded (-3.4028235E+38) diff --git a/.nuke/temp/build.2024-12-08_15-38-41.log b/.nuke/temp/build.2024-12-08_15-38-41.log new file mode 100644 index 0000000..c96c734 --- /dev/null +++ b/.nuke/temp/build.2024-12-08_15-38-41.log @@ -0,0 +1,194 @@ +V | | ArgumentsFromParametersFile.OnBuildCreated (150) +V | | HandleReSharperSurrogateArguments.OnBuildCreated (150) +V | | InjectParameterValues.OnBuildCreated (100) +V | | HandleShellCompletion.OnBuildCreated (75) +V | | GenerateBuildServerConfigurations.OnBuildCreated (50) +V | | InvokeBuildServerConfigurationGeneration.OnBuildCreated (45) +V | | UpdateNotification.OnBuildCreated (10) +V | | UnsetVisualStudioEnvironmentVariables.OnBuildCreated (0) +V | | HandleVisualStudioDebugging.OnBuildCreated (0) +V | | EventInvoker.OnBuildCreated (-3.4028235E+38) +V | | HandlePlanRequests.OnBuildInitialized (10) +V | | HandleHelpRequests.OnBuildInitialized (5) +V | | Telemetry.OnBuildInitialized (0) +V | | Sending BuildStarted telemetry event ... +V | | build_components = +V | | build_type = Project +V | | compile_time = +V | | config_generators = +V | | host = Terminal +V | | num_custom_components = 0 +V | | num_custom_extensions = 0 +V | | num_partitioned_targets = 0 +V | | num_secrets = 1 +V | | num_targets = 6 +V | | os_architecture = Arm64 +V | | os_platform = OSX +V | | repo_branch = main +V | | repo_commit = b6c9dc +V | | repo_provider = GitHub +V | | repo_url = 3bcd90 +V | | target_framework = .NETCoreApp,Version=v8.0 +V | | version_dotnet_sdk = 8.0.404 +V | | version_nuke_common = 9.0.3 +V | | version_nuke_global_tool = +V | | InjectNonParameterValues.OnBuildInitialized (-100) +W | | Solution /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln has active build configurations for the build project. +Either enable SuppressBuildProjectCheck on Build.Solution or remove the following entries from the solution file: + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Release|Any CPU.Build.0 = Release|Any CPU +V | | EventInvoker.OnBuildInitialized (-3.4028235E+38) +V | Restore | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Restore | > /usr/local/share/dotnet/dotnet restore /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln +V | Restore | @ /Users/rhysparry/src/Dirt.Env +D | Restore | Determining projects to restore... +D | Restore | Restored /Users/rhysparry/src/Dirt.Env/Dirt.Env/Dirt.Env.csproj (in 100 ms). +D | Restore | Restored /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/Dirt.Env.Tests.csproj (in 100 ms). +D | Restore | 1 of 3 projects are up-to-date for restore. +V | Restore | Telemetry.OnTargetSucceeded (0) +V | Restore | Sending TargetSucceeded telemetry event ... +V | Restore | build_components = +V | Restore | build_type = Project +V | Restore | compile_time = +V | Restore | config_generators = +V | Restore | host = Terminal +V | Restore | num_custom_components = 0 +V | Restore | num_custom_extensions = 0 +V | Restore | num_partitioned_targets = 0 +V | Restore | num_secrets = 1 +V | Restore | num_targets = 6 +V | Restore | os_architecture = Arm64 +V | Restore | os_platform = OSX +V | Restore | repo_branch = main +V | Restore | repo_commit = b6c9dc +V | Restore | repo_provider = GitHub +V | Restore | repo_url = 3bcd90 +V | Restore | target_current_partition = 1 +V | Restore | target_duration = 1 +V | Restore | target_framework = .NETCoreApp,Version=v8.0 +V | Restore | target_name = Restore +V | Restore | target_total_partitions = 1 +V | Restore | version_dotnet_sdk = 8.0.404 +V | Restore | version_nuke_common = 9.0.3 +V | Restore | version_nuke_global_tool = +V | Restore | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Compile | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Compile | > /usr/local/share/dotnet/dotnet build /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --property:Version=1.1.0-dev.01JEJCDW13JS78K1YTXKYKP8F3 --property:AssemblyVersion=1.1.0 --no-restore +V | Compile | @ /Users/rhysparry/src/Dirt.Env +D | Compile | Dirt.Env -> /Users/rhysparry/src/Dirt.Env/Dirt.Env/bin/Debug/net8.0/Dirt.Env.dll +D | Compile | _build -> /Users/rhysparry/src/Dirt.Env/build/bin/Debug/_build.dll +D | Compile | Dirt.Env.Tests -> /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll +D | Compile | +D | Compile | Build succeeded. +D | Compile | 0 Warning(s) +D | Compile | 0 Error(s) +D | Compile | +D | Compile | Time Elapsed 00:00:01.12 +V | Compile | Telemetry.OnTargetSucceeded (0) +V | Compile | Sending TargetSucceeded telemetry event ... +V | Compile | build_components = +V | Compile | build_type = Project +V | Compile | compile_time = +V | Compile | config_generators = +V | Compile | host = Terminal +V | Compile | num_custom_components = 0 +V | Compile | num_custom_extensions = 0 +V | Compile | num_partitioned_targets = 0 +V | Compile | num_secrets = 1 +V | Compile | num_targets = 6 +V | Compile | os_architecture = Arm64 +V | Compile | os_platform = OSX +V | Compile | repo_branch = main +V | Compile | repo_commit = b6c9dc +V | Compile | repo_provider = GitHub +V | Compile | repo_url = 3bcd90 +V | Compile | target_current_partition = 1 +V | Compile | target_duration = 1 +V | Compile | target_framework = .NETCoreApp,Version=v8.0 +V | Compile | target_name = Compile +V | Compile | target_total_partitions = 1 +V | Compile | version_dotnet_sdk = 8.0.404 +V | Compile | version_nuke_common = 9.0.3 +V | Compile | version_nuke_global_tool = +V | Compile | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Test | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Test | > /usr/local/share/dotnet/dotnet test /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --verbosity normal --no-build +V | Test | @ /Users/rhysparry/src/Dirt.Env +D | Test | Build started 8/12/2024 3:38:45 pm. +D | Test | 1>Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" on node 1 (VSTest target(s)). +D | Test | 1>ValidateSolutionConfiguration: +D | Test | Building solution configuration "Debug|Any CPU". +D | Test | Test run for /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll (.NETCoreApp,Version=v8.0) +D | Test | VSTest version 17.11.1 (arm64) +D | Test | +D | Test | Starting test execution, please wait... +D | Test | A total of 1 test files matched the specified pattern. +D | Test | [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 8.0.11) +D | Test | [xUnit.net 00:00:00.03] Discovering: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.04] Discovered: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.04] Starting: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvTests.PathWillReturnEmptyEvenIfUnderlyingVariableIsNotPresent [6 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvCreatesSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.IgnoringWhenAppendingPathPreservesOriginal [8 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAutomaticallyHandlesSettingPathVariable [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanAppendPathEvenWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingWindowsPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderDoesNotOverwriteExistingVariablesWhenSkipDuplicate [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SupersedingWhenAppendingPathRemovesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingNixPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsTrueWhenKeyIsPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderOverwritesExistingVariablesByDefault [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderCanUnsetPreviouslySetVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.NewEnvBuilderCreatesEmptyEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvKeysAreCaseSensitive [1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPath [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvCanGetAnyPathSeparatedValue [< 1 ms] +D | Test | [xUnit.net 00:00:00.08] Finished: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPathEventWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderClearsVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SkippingWhenAppendingPathPreservesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanInstantiateUsingSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsFalseWhenKeyIsNotPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.ValueContainsExpectedValues [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanBuildWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAddsVariable [< 1 ms] +D | Test | +D | Test | Test Run Successful. +D | Test | Total tests: 25 +D | Test | Passed: 25 +D | Test | Total time: 0.3303 Seconds +D | Test | 1>Done Building Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" (VSTest target(s)). +D | Test | +D | Test | Build succeeded. +D | Test | 0 Warning(s) +D | Test | 0 Error(s) +D | Test | +D | Test | Time Elapsed 00:00:00.84 +V | Test | Telemetry.OnTargetSucceeded (0) +V | Test | Sending TargetSucceeded telemetry event ... +V | Test | build_components = +V | Test | build_type = Project +V | Test | compile_time = +V | Test | config_generators = +V | Test | host = Terminal +V | Test | num_custom_components = 0 +V | Test | num_custom_extensions = 0 +V | Test | num_partitioned_targets = 0 +V | Test | num_secrets = 1 +V | Test | num_targets = 6 +V | Test | os_architecture = Arm64 +V | Test | os_platform = OSX +V | Test | repo_branch = main +V | Test | repo_commit = b6c9dc +V | Test | repo_provider = GitHub +V | Test | repo_url = 3bcd90 +V | Test | target_current_partition = 1 +V | Test | target_duration = 1 +V | Test | target_framework = .NETCoreApp,Version=v8.0 +V | Test | target_name = Test +V | Test | target_total_partitions = 1 +V | Test | version_dotnet_sdk = 8.0.404 +V | Test | version_nuke_common = 9.0.3 +V | Test | version_nuke_global_tool = +V | Test | EventInvoker.OnTargetSucceeded (-3.4028235E+38) diff --git a/.nuke/temp/build.2024-12-08_15-41-09.log b/.nuke/temp/build.2024-12-08_15-41-09.log new file mode 100644 index 0000000..49777e8 --- /dev/null +++ b/.nuke/temp/build.2024-12-08_15-41-09.log @@ -0,0 +1,192 @@ +V | | ArgumentsFromParametersFile.OnBuildCreated (150) +V | | HandleReSharperSurrogateArguments.OnBuildCreated (150) +V | | InjectParameterValues.OnBuildCreated (100) +V | | HandleShellCompletion.OnBuildCreated (75) +V | | GenerateBuildServerConfigurations.OnBuildCreated (50) +V | | InvokeBuildServerConfigurationGeneration.OnBuildCreated (45) +V | | UpdateNotification.OnBuildCreated (10) +V | | UnsetVisualStudioEnvironmentVariables.OnBuildCreated (0) +V | | HandleVisualStudioDebugging.OnBuildCreated (0) +V | | EventInvoker.OnBuildCreated (-3.4028235E+38) +V | | HandlePlanRequests.OnBuildInitialized (10) +V | | HandleHelpRequests.OnBuildInitialized (5) +V | | Telemetry.OnBuildInitialized (0) +V | | Sending BuildStarted telemetry event ... +V | | build_components = +V | | build_type = Project +V | | compile_time = +V | | config_generators = +V | | host = Terminal +V | | num_custom_components = 0 +V | | num_custom_extensions = 0 +V | | num_partitioned_targets = 0 +V | | num_secrets = 1 +V | | num_targets = 6 +V | | os_architecture = Arm64 +V | | os_platform = OSX +V | | repo_branch = main +V | | repo_commit = b6c9dc +V | | repo_provider = GitHub +V | | repo_url = 3bcd90 +V | | target_framework = .NETCoreApp,Version=v8.0 +V | | version_dotnet_sdk = 8.0.404 +V | | version_nuke_common = 9.0.3 +V | | version_nuke_global_tool = +V | | InjectNonParameterValues.OnBuildInitialized (-100) +W | | Solution /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln has active build configurations for the build project. +Either enable SuppressBuildProjectCheck on Build.Solution or remove the following entries from the solution file: + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Release|Any CPU.Build.0 = Release|Any CPU +V | | EventInvoker.OnBuildInitialized (-3.4028235E+38) +V | Restore | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Restore | > /usr/local/share/dotnet/dotnet restore /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln +V | Restore | @ /Users/rhysparry/src/Dirt.Env +D | Restore | Determining projects to restore... +D | Restore | All projects are up-to-date for restore. +V | Restore | Telemetry.OnTargetSucceeded (0) +V | Restore | Sending TargetSucceeded telemetry event ... +V | Restore | build_components = +V | Restore | build_type = Project +V | Restore | compile_time = +V | Restore | config_generators = +V | Restore | host = Terminal +V | Restore | num_custom_components = 0 +V | Restore | num_custom_extensions = 0 +V | Restore | num_partitioned_targets = 0 +V | Restore | num_secrets = 1 +V | Restore | num_targets = 6 +V | Restore | os_architecture = Arm64 +V | Restore | os_platform = OSX +V | Restore | repo_branch = main +V | Restore | repo_commit = b6c9dc +V | Restore | repo_provider = GitHub +V | Restore | repo_url = 3bcd90 +V | Restore | target_current_partition = 1 +V | Restore | target_duration = 0 +V | Restore | target_framework = .NETCoreApp,Version=v8.0 +V | Restore | target_name = Restore +V | Restore | target_total_partitions = 1 +V | Restore | version_dotnet_sdk = 8.0.404 +V | Restore | version_nuke_common = 9.0.3 +V | Restore | version_nuke_global_tool = +V | Restore | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Compile | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Compile | > /usr/local/share/dotnet/dotnet build /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --property:Version=1.1.0-dev.01JEJCJCA8V1NAXJ38ABVTDAQF --property:AssemblyVersion=1.1.0 --no-restore +V | Compile | @ /Users/rhysparry/src/Dirt.Env +D | Compile | _build -> /Users/rhysparry/src/Dirt.Env/build/bin/Debug/_build.dll +D | Compile | Dirt.Env -> /Users/rhysparry/src/Dirt.Env/Dirt.Env/bin/Debug/net8.0/Dirt.Env.dll +D | Compile | Dirt.Env.Tests -> /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll +D | Compile | +D | Compile | Build succeeded. +D | Compile | 0 Warning(s) +D | Compile | 0 Error(s) +D | Compile | +D | Compile | Time Elapsed 00:00:00.66 +V | Compile | Telemetry.OnTargetSucceeded (0) +V | Compile | Sending TargetSucceeded telemetry event ... +V | Compile | build_components = +V | Compile | build_type = Project +V | Compile | compile_time = +V | Compile | config_generators = +V | Compile | host = Terminal +V | Compile | num_custom_components = 0 +V | Compile | num_custom_extensions = 0 +V | Compile | num_partitioned_targets = 0 +V | Compile | num_secrets = 1 +V | Compile | num_targets = 6 +V | Compile | os_architecture = Arm64 +V | Compile | os_platform = OSX +V | Compile | repo_branch = main +V | Compile | repo_commit = b6c9dc +V | Compile | repo_provider = GitHub +V | Compile | repo_url = 3bcd90 +V | Compile | target_current_partition = 1 +V | Compile | target_duration = 1 +V | Compile | target_framework = .NETCoreApp,Version=v8.0 +V | Compile | target_name = Compile +V | Compile | target_total_partitions = 1 +V | Compile | version_dotnet_sdk = 8.0.404 +V | Compile | version_nuke_common = 9.0.3 +V | Compile | version_nuke_global_tool = +V | Compile | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +V | Test | EventInvoker.OnTargetRunning (-3.4028235E+38) +I | Test | > /usr/local/share/dotnet/dotnet test /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --verbosity normal --no-build +V | Test | @ /Users/rhysparry/src/Dirt.Env +D | Test | Build started 8/12/2024 3:41:12 pm. +D | Test | 1>Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" on node 1 (VSTest target(s)). +D | Test | 1>ValidateSolutionConfiguration: +D | Test | Building solution configuration "Debug|Any CPU". +D | Test | Test run for /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll (.NETCoreApp,Version=v8.0) +D | Test | VSTest version 17.11.1 (arm64) +D | Test | +D | Test | Starting test execution, please wait... +D | Test | A total of 1 test files matched the specified pattern. +D | Test | [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 8.0.11) +D | Test | [xUnit.net 00:00:00.03] Discovering: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.04] Discovered: Dirt.Env.Tests +D | Test | [xUnit.net 00:00:00.04] Starting: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvTests.PathWillReturnEmptyEvenIfUnderlyingVariableIsNotPresent [6 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvCreatesSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.IgnoringWhenAppendingPathPreservesOriginal [8 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAutomaticallyHandlesSettingPathVariable [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanAppendPathEvenWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingWindowsPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderDoesNotOverwriteExistingVariablesWhenSkipDuplicate [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SupersedingWhenAppendingPathRemovesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingNixPathSetsPathAsExpected [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsTrueWhenKeyIsPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderOverwritesExistingVariablesByDefault [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvKeysAreCaseSensitive [1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderCanUnsetPreviouslySetVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.EnvCanGetAnyPathSeparatedValue [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.NewEnvBuilderCreatesEmptyEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPath [< 1 ms] +D | Test | [xUnit.net 00:00:00.09] Finished: Dirt.Env.Tests +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPathEventWhenPathVariableIsNotSet [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderClearsVariables [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.SkippingWhenAppendingPathPreservesOriginal [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanInstantiateUsingSystemEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsFalseWhenKeyIsNotPresent [< 1 ms] +D | Test | Passed Dirt.Tests.EnvTests.NewEnvWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.ValueContainsExpectedValues [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.CanBuildWithCustomEnvironment [< 1 ms] +D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAddsVariable [< 1 ms] +D | Test | +D | Test | Test Run Successful. +D | Test | Total tests: 25 +D | Test | Passed: 25 +D | Test | Total time: 0.3453 Seconds +D | Test | 1>Done Building Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" (VSTest target(s)). +D | Test | +D | Test | Build succeeded. +D | Test | 0 Warning(s) +D | Test | 0 Error(s) +D | Test | +D | Test | Time Elapsed 00:00:00.89 +V | Test | Telemetry.OnTargetSucceeded (0) +V | Test | Sending TargetSucceeded telemetry event ... +V | Test | build_components = +V | Test | build_type = Project +V | Test | compile_time = +V | Test | config_generators = +V | Test | host = Terminal +V | Test | num_custom_components = 0 +V | Test | num_custom_extensions = 0 +V | Test | num_partitioned_targets = 0 +V | Test | num_secrets = 1 +V | Test | num_targets = 6 +V | Test | os_architecture = Arm64 +V | Test | os_platform = OSX +V | Test | repo_branch = main +V | Test | repo_commit = b6c9dc +V | Test | repo_provider = GitHub +V | Test | repo_url = 3bcd90 +V | Test | target_current_partition = 1 +V | Test | target_duration = 1 +V | Test | target_framework = .NETCoreApp,Version=v8.0 +V | Test | target_name = Test +V | Test | target_total_partitions = 1 +V | Test | version_dotnet_sdk = 8.0.404 +V | Test | version_nuke_common = 9.0.3 +V | Test | version_nuke_global_tool = +V | Test | EventInvoker.OnTargetSucceeded (-3.4028235E+38) diff --git a/.nuke/temp/build.log b/.nuke/temp/build.log new file mode 100644 index 0000000..1dcd19e --- /dev/null +++ b/.nuke/temp/build.log @@ -0,0 +1,192 @@ +15:41:09.099 | V | | ArgumentsFromParametersFile.OnBuildCreated (150) +15:41:09.110 | V | | HandleReSharperSurrogateArguments.OnBuildCreated (150) +15:41:09.110 | V | | InjectParameterValues.OnBuildCreated (100) +15:41:09.122 | V | | HandleShellCompletion.OnBuildCreated (75) +15:41:09.291 | V | | GenerateBuildServerConfigurations.OnBuildCreated (50) +15:41:09.291 | V | | InvokeBuildServerConfigurationGeneration.OnBuildCreated (45) +15:41:09.298 | V | | UpdateNotification.OnBuildCreated (10) +15:41:09.298 | V | | UnsetVisualStudioEnvironmentVariables.OnBuildCreated (0) +15:41:09.298 | V | | HandleVisualStudioDebugging.OnBuildCreated (0) +15:41:09.299 | V | | EventInvoker.OnBuildCreated (-3.4028235E+38) +15:41:09.305 | V | | HandlePlanRequests.OnBuildInitialized (10) +15:41:09.305 | V | | HandleHelpRequests.OnBuildInitialized (5) +15:41:09.306 | V | | Telemetry.OnBuildInitialized (0) +15:41:09.597 | V | | Sending BuildStarted telemetry event ... +15:41:09.598 | V | | build_components = +15:41:09.598 | V | | build_type = Project +15:41:09.598 | V | | compile_time = +15:41:09.598 | V | | config_generators = +15:41:09.598 | V | | host = Terminal +15:41:09.598 | V | | num_custom_components = 0 +15:41:09.598 | V | | num_custom_extensions = 0 +15:41:09.598 | V | | num_partitioned_targets = 0 +15:41:09.598 | V | | num_secrets = 1 +15:41:09.598 | V | | num_targets = 6 +15:41:09.598 | V | | os_architecture = Arm64 +15:41:09.598 | V | | os_platform = OSX +15:41:09.598 | V | | repo_branch = main +15:41:09.598 | V | | repo_commit = b6c9dc +15:41:09.598 | V | | repo_provider = GitHub +15:41:09.598 | V | | repo_url = 3bcd90 +15:41:09.598 | V | | target_framework = .NETCoreApp,Version=v8.0 +15:41:09.598 | V | | version_dotnet_sdk = 8.0.404 +15:41:09.598 | V | | version_nuke_common = 9.0.3 +15:41:09.598 | V | | version_nuke_global_tool = +15:41:10.101 | V | | InjectNonParameterValues.OnBuildInitialized (-100) +15:41:10.130 | W | | Solution /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln has active build configurations for the build project. +Either enable SuppressBuildProjectCheck on Build.Solution or remove the following entries from the solution file: + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + - {FE909DB9-9113-44E4-8A46-12D0001582BC}.Release|Any CPU.Build.0 = Release|Any CPU +15:41:10.136 | V | | EventInvoker.OnBuildInitialized (-3.4028235E+38) +15:41:10.141 | V | Restore | EventInvoker.OnTargetRunning (-3.4028235E+38) +15:41:10.160 | I | Restore | > /usr/local/share/dotnet/dotnet restore /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln +15:41:10.160 | V | Restore | @ /Users/rhysparry/src/Dirt.Env +15:41:10.456 | D | Restore | Determining projects to restore... +15:41:10.583 | D | Restore | All projects are up-to-date for restore. +15:41:10.599 | V | Restore | Telemetry.OnTargetSucceeded (0) +15:41:10.695 | V | Restore | Sending TargetSucceeded telemetry event ... +15:41:10.695 | V | Restore | build_components = +15:41:10.695 | V | Restore | build_type = Project +15:41:10.695 | V | Restore | compile_time = +15:41:10.695 | V | Restore | config_generators = +15:41:10.695 | V | Restore | host = Terminal +15:41:10.695 | V | Restore | num_custom_components = 0 +15:41:10.695 | V | Restore | num_custom_extensions = 0 +15:41:10.695 | V | Restore | num_partitioned_targets = 0 +15:41:10.695 | V | Restore | num_secrets = 1 +15:41:10.695 | V | Restore | num_targets = 6 +15:41:10.695 | V | Restore | os_architecture = Arm64 +15:41:10.695 | V | Restore | os_platform = OSX +15:41:10.695 | V | Restore | repo_branch = main +15:41:10.695 | V | Restore | repo_commit = b6c9dc +15:41:10.695 | V | Restore | repo_provider = GitHub +15:41:10.695 | V | Restore | repo_url = 3bcd90 +15:41:10.695 | V | Restore | target_current_partition = 1 +15:41:10.695 | V | Restore | target_duration = 0 +15:41:10.695 | V | Restore | target_framework = .NETCoreApp,Version=v8.0 +15:41:10.695 | V | Restore | target_name = Restore +15:41:10.695 | V | Restore | target_total_partitions = 1 +15:41:10.695 | V | Restore | version_dotnet_sdk = 8.0.404 +15:41:10.695 | V | Restore | version_nuke_common = 9.0.3 +15:41:10.695 | V | Restore | version_nuke_global_tool = +15:41:10.999 | V | Restore | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +15:41:10.999 | V | Compile | EventInvoker.OnTargetRunning (-3.4028235E+38) +15:41:11.010 | I | Compile | > /usr/local/share/dotnet/dotnet build /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --property:Version=1.1.0-dev.01JEJCJCA8V1NAXJ38ABVTDAQF --property:AssemblyVersion=1.1.0 --no-restore +15:41:11.010 | V | Compile | @ /Users/rhysparry/src/Dirt.Env +15:41:11.428 | D | Compile | _build -> /Users/rhysparry/src/Dirt.Env/build/bin/Debug/_build.dll +15:41:11.525 | D | Compile | Dirt.Env -> /Users/rhysparry/src/Dirt.Env/Dirt.Env/bin/Debug/net8.0/Dirt.Env.dll +15:41:11.786 | D | Compile | Dirt.Env.Tests -> /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll +15:41:11.796 | D | Compile | +15:41:11.797 | D | Compile | Build succeeded. +15:41:11.797 | D | Compile | 0 Warning(s) +15:41:11.797 | D | Compile | 0 Error(s) +15:41:11.797 | D | Compile | +15:41:11.797 | D | Compile | Time Elapsed 00:00:00.66 +15:41:11.805 | V | Compile | Telemetry.OnTargetSucceeded (0) +15:41:11.900 | V | Compile | Sending TargetSucceeded telemetry event ... +15:41:11.900 | V | Compile | build_components = +15:41:11.900 | V | Compile | build_type = Project +15:41:11.900 | V | Compile | compile_time = +15:41:11.901 | V | Compile | config_generators = +15:41:11.901 | V | Compile | host = Terminal +15:41:11.901 | V | Compile | num_custom_components = 0 +15:41:11.901 | V | Compile | num_custom_extensions = 0 +15:41:11.901 | V | Compile | num_partitioned_targets = 0 +15:41:11.901 | V | Compile | num_secrets = 1 +15:41:11.901 | V | Compile | num_targets = 6 +15:41:11.901 | V | Compile | os_architecture = Arm64 +15:41:11.901 | V | Compile | os_platform = OSX +15:41:11.901 | V | Compile | repo_branch = main +15:41:11.901 | V | Compile | repo_commit = b6c9dc +15:41:11.901 | V | Compile | repo_provider = GitHub +15:41:11.901 | V | Compile | repo_url = 3bcd90 +15:41:11.901 | V | Compile | target_current_partition = 1 +15:41:11.901 | V | Compile | target_duration = 1 +15:41:11.901 | V | Compile | target_framework = .NETCoreApp,Version=v8.0 +15:41:11.901 | V | Compile | target_name = Compile +15:41:11.901 | V | Compile | target_total_partitions = 1 +15:41:11.901 | V | Compile | version_dotnet_sdk = 8.0.404 +15:41:11.901 | V | Compile | version_nuke_common = 9.0.3 +15:41:11.901 | V | Compile | version_nuke_global_tool = +15:41:12.238 | V | Compile | EventInvoker.OnTargetSucceeded (-3.4028235E+38) +15:41:12.238 | V | Test | EventInvoker.OnTargetRunning (-3.4028235E+38) +15:41:12.248 | I | Test | > /usr/local/share/dotnet/dotnet test /Users/rhysparry/src/Dirt.Env/Dirt.Env.sln --configuration Debug --verbosity normal --no-build +15:41:12.248 | V | Test | @ /Users/rhysparry/src/Dirt.Env +15:41:12.372 | D | Test | Build started 8/12/2024 3:41:12 pm. +15:41:12.431 | D | Test | 1>Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" on node 1 (VSTest target(s)). +15:41:12.431 | D | Test | 1>ValidateSolutionConfiguration: +15:41:12.431 | D | Test | Building solution configuration "Debug|Any CPU". +15:41:12.734 | D | Test | Test run for /Users/rhysparry/src/Dirt.Env/Dirt.Env.Tests/bin/Debug/net8.0/Dirt.Env.Tests.dll (.NETCoreApp,Version=v8.0) +15:41:12.820 | D | Test | VSTest version 17.11.1 (arm64) +15:41:12.821 | D | Test | +15:41:12.872 | D | Test | Starting test execution, please wait... +15:41:12.886 | D | Test | A total of 1 test files matched the specified pattern. +15:41:13.111 | D | Test | [xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 8.0.11) +15:41:13.141 | D | Test | [xUnit.net 00:00:00.03] Discovering: Dirt.Env.Tests +15:41:13.154 | D | Test | [xUnit.net 00:00:00.04] Discovered: Dirt.Env.Tests +15:41:13.155 | D | Test | [xUnit.net 00:00:00.04] Starting: Dirt.Env.Tests +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvTests.PathWillReturnEmptyEvenIfUnderlyingVariableIsNotPresent [6 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvTests.NewEnvCreatesSystemEnvironment [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.IgnoringWhenAppendingPathPreservesOriginal [8 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAutomaticallyHandlesSettingPathVariable [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.CanAppendPathEvenWhenPathVariableIsNotSet [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingWindowsPathSetsPathAsExpected [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderDoesNotOverwriteExistingVariablesWhenSkipDuplicate [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.SupersedingWhenAppendingPathRemovesOriginal [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.UsingNixPathSetsPathAsExpected [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsTrueWhenKeyIsPresent [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderOverwritesExistingVariablesByDefault [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvTests.EnvKeysAreCaseSensitive [1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderCanUnsetPreviouslySetVariables [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvTests.EnvCanGetAnyPathSeparatedValue [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.NewEnvBuilderCreatesEmptyEnvironment [< 1 ms] +15:41:13.204 | D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPath [< 1 ms] +15:41:13.204 | D | Test | [xUnit.net 00:00:00.09] Finished: Dirt.Env.Tests +15:41:13.229 | D | Test | Passed Dirt.Tests.EnvBuilderTests.CanPrependPathEventWhenPathVariableIsNotSet [< 1 ms] +15:41:13.229 | D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderClearsVariables [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvBuilderTests.SkippingWhenAppendingPathPreservesOriginal [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvBuilderTests.CanInstantiateUsingSystemEnvironment [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvBuilderTests.TryGetValueReturnsFalseWhenKeyIsNotPresent [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvTests.NewEnvWithCustomEnvironment [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvBuilderTests.ValueContainsExpectedValues [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvBuilderTests.CanBuildWithCustomEnvironment [< 1 ms] +15:41:13.230 | D | Test | Passed Dirt.Tests.EnvBuilderTests.EnvBuilderAddsVariable [< 1 ms] +15:41:13.231 | D | Test | +15:41:13.233 | D | Test | Test Run Successful. +15:41:13.233 | D | Test | Total tests: 25 +15:41:13.233 | D | Test | Passed: 25 +15:41:13.233 | D | Test | Total time: 0.3453 Seconds +15:41:13.244 | D | Test | 1>Done Building Project "/Users/rhysparry/src/Dirt.Env/Dirt.Env.sln" (VSTest target(s)). +15:41:13.262 | D | Test | +15:41:13.262 | D | Test | Build succeeded. +15:41:13.262 | D | Test | 0 Warning(s) +15:41:13.262 | D | Test | 0 Error(s) +15:41:13.263 | D | Test | +15:41:13.263 | D | Test | Time Elapsed 00:00:00.89 +15:41:13.268 | V | Test | Telemetry.OnTargetSucceeded (0) +15:41:13.363 | V | Test | Sending TargetSucceeded telemetry event ... +15:41:13.363 | V | Test | build_components = +15:41:13.363 | V | Test | build_type = Project +15:41:13.363 | V | Test | compile_time = +15:41:13.363 | V | Test | config_generators = +15:41:13.363 | V | Test | host = Terminal +15:41:13.363 | V | Test | num_custom_components = 0 +15:41:13.363 | V | Test | num_custom_extensions = 0 +15:41:13.363 | V | Test | num_partitioned_targets = 0 +15:41:13.363 | V | Test | num_secrets = 1 +15:41:13.363 | V | Test | num_targets = 6 +15:41:13.363 | V | Test | os_architecture = Arm64 +15:41:13.363 | V | Test | os_platform = OSX +15:41:13.363 | V | Test | repo_branch = main +15:41:13.363 | V | Test | repo_commit = b6c9dc +15:41:13.363 | V | Test | repo_provider = GitHub +15:41:13.363 | V | Test | repo_url = 3bcd90 +15:41:13.363 | V | Test | target_current_partition = 1 +15:41:13.363 | V | Test | target_duration = 1 +15:41:13.363 | V | Test | target_framework = .NETCoreApp,Version=v8.0 +15:41:13.363 | V | Test | target_name = Test +15:41:13.363 | V | Test | target_total_partitions = 1 +15:41:13.363 | V | Test | version_dotnet_sdk = 8.0.404 +15:41:13.363 | V | Test | version_nuke_common = 9.0.3 +15:41:13.363 | V | Test | version_nuke_global_tool = +15:41:13.661 | V | Test | EventInvoker.OnTargetSucceeded (-3.4028235E+38) diff --git a/Dirt.Env.sln b/Dirt.Env.sln index 6aa42a1..91ab568 100644 --- a/Dirt.Env.sln +++ b/Dirt.Env.sln @@ -1,9 +1,12 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 +# Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dirt.Env", "Dirt.Env\Dirt.Env.csproj", "{AA1A41B8-5F4A-4873-98B5-D31AF6BD1E52}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dirt.Env.Tests", "Dirt.Env.Tests\Dirt.Env.Tests.csproj", "{08F34009-BF5E-4721-8539-1BC369D9EC50}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "_build", "build\_build.csproj", "{FE909DB9-9113-44E4-8A46-12D0001582BC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -18,5 +21,7 @@ Global {08F34009-BF5E-4721-8539-1BC369D9EC50}.Debug|Any CPU.Build.0 = Debug|Any CPU {08F34009-BF5E-4721-8539-1BC369D9EC50}.Release|Any CPU.ActiveCfg = Release|Any CPU {08F34009-BF5E-4721-8539-1BC369D9EC50}.Release|Any CPU.Build.0 = Release|Any CPU + {FE909DB9-9113-44E4-8A46-12D0001582BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE909DB9-9113-44E4-8A46-12D0001582BC}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Dirt.Env/Dirt.Env.csproj b/Dirt.Env/Dirt.Env.csproj index bbb59d4..7411052 100644 --- a/Dirt.Env/Dirt.Env.csproj +++ b/Dirt.Env/Dirt.Env.csproj @@ -14,10 +14,23 @@ Copyright 2024 Rhys Parry true true + true + snupkg + + + + all + + + + + true + true + diff --git a/build.cmd b/build.cmd new file mode 100755 index 0000000..b08cc59 --- /dev/null +++ b/build.cmd @@ -0,0 +1,7 @@ +:; set -eo pipefail +:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) +:; ${SCRIPT_DIR}/build.sh "$@" +:; exit $? + +@ECHO OFF +powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %* diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..4634dc0 --- /dev/null +++ b/build.ps1 @@ -0,0 +1,74 @@ +[CmdletBinding()] +Param( + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$BuildArguments +) + +Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)" + +Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 } +$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent + +########################################################################### +# CONFIGURATION +########################################################################### + +$BuildProjectFile = "$PSScriptRoot\build\_build.csproj" +$TempDirectory = "$PSScriptRoot\\.nuke\temp" + +$DotNetGlobalFile = "$PSScriptRoot\\global.json" +$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" +$DotNetChannel = "STS" + +$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 +$env:DOTNET_NOLOGO = 1 + +########################################################################### +# EXECUTION +########################################################################### + +function ExecSafe([scriptblock] $cmd) { + & $cmd + if ($LASTEXITCODE) { exit $LASTEXITCODE } +} + +# If dotnet CLI is installed globally and it matches requested version, use for execution +if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and ` + $(dotnet --version) -and $LASTEXITCODE -eq 0) { + $env:DOTNET_EXE = (Get-Command "dotnet").Path +} +else { + # Download install script + $DotNetInstallFile = "$TempDirectory\dotnet-install.ps1" + New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + (New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile) + + # If global.json exists, load expected version + if (Test-Path $DotNetGlobalFile) { + $DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) + if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { + $DotNetVersion = $DotNetGlobal.sdk.version + } + } + + # Install by channel or version + $DotNetDirectory = "$TempDirectory\dotnet-win" + if (!(Test-Path variable:DotNetVersion)) { + ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } + } else { + ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } + } + $env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" + $env:PATH = "$DotNetDirectory;$env:PATH" +} + +Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)" + +if (Test-Path env:NUKE_ENTERPRISE_TOKEN) { + & $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null + & $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null +} + +ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } +ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..fdff0c6 --- /dev/null +++ b/build.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +bash --version 2>&1 | head -n 1 + +set -eo pipefail +SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) + +########################################################################### +# CONFIGURATION +########################################################################### + +BUILD_PROJECT_FILE="$SCRIPT_DIR/build/_build.csproj" +TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" + +DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json" +DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh" +DOTNET_CHANNEL="STS" + +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export DOTNET_NOLOGO=1 + +########################################################################### +# EXECUTION +########################################################################### + +function FirstJsonValue { + perl -nle 'print $1 if m{"'"$1"'": "([^"]+)",?}' <<< "${@:2}" +} + +# If dotnet CLI is installed globally and it matches requested version, use for execution +if [ -x "$(command -v dotnet)" ] && dotnet --version &>/dev/null; then + export DOTNET_EXE="$(command -v dotnet)" +else + # Download install script + DOTNET_INSTALL_FILE="$TEMP_DIRECTORY/dotnet-install.sh" + mkdir -p "$TEMP_DIRECTORY" + curl -Lsfo "$DOTNET_INSTALL_FILE" "$DOTNET_INSTALL_URL" + chmod +x "$DOTNET_INSTALL_FILE" + + # If global.json exists, load expected version + if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then + DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")") + if [[ "$DOTNET_VERSION" == "" ]]; then + unset DOTNET_VERSION + fi + fi + + # Install by channel or version + DOTNET_DIRECTORY="$TEMP_DIRECTORY/dotnet-unix" + if [[ -z ${DOTNET_VERSION+x} ]]; then + "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --channel "$DOTNET_CHANNEL" --no-path + else + "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path + fi + export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet" + export PATH="$DOTNET_DIRECTORY:$PATH" +fi + +echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)" + +if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "$NUKE_ENTERPRISE_TOKEN" != "" ]]; then + "$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true + "$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true +fi + +"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet +"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@" diff --git a/build/.editorconfig b/build/.editorconfig new file mode 100644 index 0000000..31e43dc --- /dev/null +++ b/build/.editorconfig @@ -0,0 +1,11 @@ +[*.cs] +dotnet_style_qualification_for_field = false:warning +dotnet_style_qualification_for_property = false:warning +dotnet_style_qualification_for_method = false:warning +dotnet_style_qualification_for_event = false:warning +dotnet_style_require_accessibility_modifiers = never:warning + +csharp_style_expression_bodied_methods = true:silent +csharp_style_expression_bodied_properties = true:warning +csharp_style_expression_bodied_indexers = true:warning +csharp_style_expression_bodied_accessors = true:warning diff --git a/build/Build.cs b/build/Build.cs new file mode 100644 index 0000000..897ca8e --- /dev/null +++ b/build/Build.cs @@ -0,0 +1,127 @@ +using System.Linq; +using JetBrains.Annotations; +using Nuke.Common; +using Nuke.Common.Git; +using Nuke.Common.IO; +using Nuke.Common.ProjectModel; +using Nuke.Common.Tools.DotNet; +using NUlid; + +class Build : NukeBuild +{ + /// Support plugins are available for: + /// - JetBrains ReSharper https://nuke.build/resharper + /// - JetBrains Rider https://nuke.build/rider + /// - Microsoft VisualStudio https://nuke.build/visualstudio + /// - Microsoft VSCode https://nuke.build/vscode + + public static int Main () => Execute(x => x.Compile); + + AbsolutePath Artifacts => RootDirectory / "artifacts"; + + [Solution(GenerateProjects = true)] + readonly Solution Solution = null!; + + [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] + readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release; + + [Parameter("Version to use")] readonly string Version = "0.0.0"; + + [Parameter("GitHub Ref")] readonly string GithubRef = "undefined"; + + [GitRepository] readonly GitRepository? GitRepository; + + readonly Ulid BuildId = Ulid.NewUlid(); + + string BuildVersion + { + get + { + var preReleaseTag = IsLocalBuild ? "dev" : "pre"; + var preReleaseVersion = $"{Version}-{preReleaseTag}.{BuildId}"; + if (GitRepository is null) + { + return $"{Version}-{preReleaseTag}.{BuildId}"; + } + + return IsReleaseTag ? Version : preReleaseVersion; + } + } + + bool IsReleaseTag => GithubRef == $"refs/tags/v{Version}"; + + [Secret, Parameter("NuGet API key")] readonly string? NuGetApiKey; + + [UsedImplicitly] + Target Clean => clean => clean + .Before(Restore) + .Executes(() => + { + DotNetTasks.DotNetClean(s => s + .SetProject(Solution) + .SetConfiguration(Configuration) + ); + Artifacts.CreateOrCleanDirectory(); + }); + + Target Restore => restore => restore + .Executes(() => + { + DotNetTasks.DotNetRestore(s => s + .SetProjectFile(Solution) + ); + }); + + Target Compile => compile => compile + .DependsOn(Restore) + .Executes(() => + { + DotNetTasks.DotNetBuild(s => s + .SetProjectFile(Solution) + .SetConfiguration(Configuration) + .SetVersion(BuildVersion) + .SetAssemblyVersion(Version) + .EnableNoRestore() + ); + }); + + Target Test => test => test + .DependsOn(Compile) + .Executes(() => + { + DotNetTasks.DotNetTest(s => s + .SetProjectFile(Solution) + .SetConfiguration(Configuration) + .SetVerbosity(DotNetVerbosity.normal) + .EnableNoBuild() + ); + }); + + Target Pack => pack => pack + .WhenSkipped(DependencyBehavior.Skip) + .DependsOn(Test) + .Executes(() => + { + DotNetTasks.DotNetPack(s => s + .SetProject(Solution.Dirt_Env) + .SetConfiguration(Configuration) + .SetVersion(BuildVersion) + .SetOutputDirectory(Artifacts) + .EnableNoBuild() + ); + }); + + [UsedImplicitly] + Target Publish => publish => publish + .DependsOn(Pack) + .Requires(() => NuGetApiKey) + .Executes(() => + { + Assert.True(IsReleaseTag, "Must be a release tag to publish"); + DotNetTasks.DotNetNuGetPush(s => s + .SetSource("https://api.nuget.org/v3/index.json") + .SetTargetPath(Artifacts / "*.nupkg") + .SetApiKey(NuGetApiKey) + ); + }); +} diff --git a/build/Configuration.cs b/build/Configuration.cs new file mode 100644 index 0000000..9c08b1a --- /dev/null +++ b/build/Configuration.cs @@ -0,0 +1,16 @@ +using System; +using System.ComponentModel; +using System.Linq; +using Nuke.Common.Tooling; + +[TypeConverter(typeof(TypeConverter))] +public class Configuration : Enumeration +{ + public static Configuration Debug = new Configuration { Value = nameof(Debug) }; + public static Configuration Release = new Configuration { Value = nameof(Release) }; + + public static implicit operator string(Configuration configuration) + { + return configuration.Value; + } +} diff --git a/build/Directory.Build.props b/build/Directory.Build.props new file mode 100644 index 0000000..e147d63 --- /dev/null +++ b/build/Directory.Build.props @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/build/Directory.Build.targets b/build/Directory.Build.targets new file mode 100644 index 0000000..2532609 --- /dev/null +++ b/build/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/build/_build.csproj b/build/_build.csproj new file mode 100644 index 0000000..9e3b7e2 --- /dev/null +++ b/build/_build.csproj @@ -0,0 +1,20 @@ + + + + Exe + net8.0 + + CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006 + .. + .. + 1 + false + enable + + + + + + + + diff --git a/build/_build.csproj.DotSettings b/build/_build.csproj.DotSettings new file mode 100644 index 0000000..c815d36 --- /dev/null +++ b/build/_build.csproj.DotSettings @@ -0,0 +1,31 @@ + + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + Implicit + Implicit + ExpressionBody + 0 + NEXT_LINE + True + False + 120 + IF_OWNER_IS_SINGLE_LINE + WRAP_IF_LONG + False + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy> + <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy> + True + True + True + True + True + True + True + True + True + True diff --git a/cliff.toml b/cliff.toml index 97fa190..1688ec4 100644 --- a/cliff.toml +++ b/cliff.toml @@ -23,7 +23,7 @@ body = """ {% for commit in commits %} - {{ commit.message | upper_first }}{% for f in commit.footers -%} {% if f.token in ["Resolves", "Fixes"] -%} - {{ " (" ~ f.token }} [{{ f.value }}](https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}/issues/{{ f.value | trim_start_matches(pat="#") }})) + {{ " (" ~ f.token }} [{{ f.value }}](https://github.com/rhysparry/Dirt.Env/issues/{{ f.value | trim_start_matches(pat="#") }})) {%- endif -%} {% endfor %}\ {% endfor %} @@ -35,11 +35,11 @@ footer = """ {% if release.version -%} {% if release.previous.version -%} [{{ release.version | trim_start_matches(pat="v") }}]: \ - https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\ + https://github.com/rhysparry/Dirt.Env\ /compare/{{ release.previous.version }}..{{ release.version }} {% endif -%} {% else -%} - [unreleased]: https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\ + [unreleased]: https://github.com/rhysparry/Dirt.Env\ /compare/{{ release.previous.version }}..HEAD {% endif -%} {% endfor %} @@ -57,6 +57,7 @@ filter_unconventional = true split_commits = false # regex for parsing and grouping commits commit_parsers = [ + { message = "^chore.release.: release", skip = true }, { message = "^.*: [Aa]dd", group = "Added" }, { message = "^.*: [Ss]upport", group = "Added" }, { message = "^.*: [Rr]emove", group = "Removed" }, @@ -66,6 +67,10 @@ commit_parsers = [ { message = "^.*: [Ff]ix", group = "Fixed" }, { message = "^.*", group = "Changed" }, ] +# Pre-process commits +commit_preprocessors = [ + { pattern = "\\(#(\\d+)\\)", replace = "([#$1](https://github.com/rhysparry/Dirt.Env/pull/$1))" } +] # protect breaking changes from being skipped due to matching a skipping commit_parser protect_breaking_commits = false # filter out the commits that are not matched by commit parsers diff --git a/global.json b/global.json new file mode 100644 index 0000000..24521cb --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "8.0.404", + "rollForward": "latestFeature" + } +} diff --git a/justfile b/justfile index 4e65f7f..2ad4d35 100644 --- a/justfile +++ b/justfile @@ -1,36 +1,65 @@ -set windows-shell := ["nu", "-c"] +set windows-shell := ["pwsh.exe", "-NoProfile", "-c"] -version := "1.1.0" -configuration := env("BUILD_CONFIGURATION", "Release") -nugetApiKey := env("NUGET_API_KEY", "") +export NuGetApiKey := env("NUGET_API_KEY", "") +export Version := trim_start_match(`git-cliff --bumped-version`, "v") +build-cmd := if os_family() == "windows" { "./build.cmd" } else { "./build.sh" } +mkdir-p := if os_family() == "windows" { "New-Item -Type Directory -Force" } else { "mkdir -p" } restore: - dotnet restore + {{ build-cmd }} -target Restore -build: restore - dotnet build --no-restore --configuration {{configuration}} /p:Version={{version}} /p:AssemblyVersion={{version}} +build: + {{ build-cmd }} -target Compile -test: build - dotnet test --no-build --verbosity normal --configuration {{configuration}} +test: + {{ build-cmd }} -target Test -pack: build - dotnet pack --no-build --configuration {{configuration}} /p:PackageVersion={{version}} +pack: + {{ build-cmd }} -target Pack clean: - dotnet clean --configuration {{configuration}} + {{ build-cmd }} -target Clean -nuget-push: (is-not-empty nugetApiKey) pack - @dotnet nuget push **/*.nupkg --source https://api.nuget.org/v3/index.json --api-key {{nugetApiKey}} +nuget-push: + {{ build-cmd }} -target Publish + +nuget-push-no-pack: + {{ build-cmd }} -target Publish -skip Pack + +[private] +artifacts-dir: + {{ mkdir-p }} artifacts + +release-notes: artifacts-dir + git-cliff --latest --strip header --output artifacts/RELEASE-NOTES.md changelog: git-cliff --output CHANGELOG.md -[private] -[windows] -@is-not-empty value: - use std assert; assert (not ("{{value}}" | is-empty)) +[windows, private] +assert-branch name="main": + @if ((git branch --show-current) -ne "{{ name }}") { throw "Not on {{ name }} branch" } -[private] -[unix] -@is-not-empty value: - [ -n "{{value}}" ] \ No newline at end of file +[unix, private] +assert-branch name="main": + [ "$(git branch --show-current)" = "{{ name }}" ] + +[windows, private] +assert-no-pending-changes: + @if ($null -ne (git status --porcelain)) { throw "There are pending changes" } + +[unix, private] +assert-no-pending-changes: + [ -z "$(git status --porcelain)" ] + +release: (assert-branch "main") assert-no-pending-changes && push-release + git pull + git-cliff --bump --output CHANGELOG.md + git-cliff --bump --unreleased --strip header --output artifacts/RELEASE-NOTES.md + git add CHANGELOG.md + git commit -m "chore(release): release {{ Version }}" + git tag "v{{ Version }}" -F artifacts/RELEASE-NOTES.md --cleanup=whitespace + +[private, confirm("Are you sure you want to push the release?")] +push-release: + git push origin main --tags \ No newline at end of file