diff --git a/.appveyor.yml b/.appveyor.yml
index cf9c7b0..5150f32 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -1,13 +1,29 @@
#---------------------------------#
# Build Image #
#---------------------------------#
-image: Visual Studio 2017
+image: Visual Studio 2022
+
+#---------------------------------#
+# Install .NET #
+#---------------------------------#
+install:
+ - ps: $env:DOTNET_INSTALL_DIR = "$pwd\.dotnetsdk"
+ - ps: mkdir $env:DOTNET_INSTALL_DIR -Force | Out-Null
+ - ps: Invoke-WebRequest -Uri "https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1" -OutFile "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1"
+ - ps: '& "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1" -Channel 2.1 -InstallDir $env:DOTNET_INSTALL_DIR'
+ - ps: '& "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1" -Channel 3.1 -InstallDir $env:DOTNET_INSTALL_DIR'
+ - ps: '& "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1" -Channel 5.0 -InstallDir $env:DOTNET_INSTALL_DIR'
+ - ps: '& "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1" -Channel 6.0 -InstallDir $env:DOTNET_INSTALL_DIR'
+ - ps: '& "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1" -Channel 7.0 -InstallDir $env:DOTNET_INSTALL_DIR'
+ - ps: '& "$($env:DOTNET_INSTALL_DIR)/dotnet-install.ps1" -Channel 8.0 -InstallDir $env:DOTNET_INSTALL_DIR'
+ - ps: $env:Path = "$env:DOTNET_INSTALL_DIR;$env:Path"
+ - ps: dotnet --info
#---------------------------------#
# Build Script #
#---------------------------------#
build_script:
- - ps: .\build.ps1 -Target AppVeyor
+ - ps: .\build.ps1 --target=CI
#---------------------------------#
# Tests
@@ -40,7 +56,7 @@ branches:
# Build Cache #
#---------------------------------#
cache:
-- tools -> recipe.cake, tools/packages.config
+- tools -> recipe.cake, .config/dotnet-tools.json
#---------------------------------#
# Skip builds for doc changes #
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000..dd9d785
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,13 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "cake.tool": {
+ "version": "1.3.0",
+ "commands": [
+ "dotnet-cake"
+ ],
+ "rollForward": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/.editorconfig b/.editorconfig
index 1172014..8fbf34b 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -5,12 +5,14 @@ root = true
[*]
end_of_line = CRLF
+trim_trailing_whitespace = true
-[*.ps1]
-indent_style = space
-indent_size = 4
+[*.md]
+trim_trailing_whitespace = false
-[*.cs]
+[*.{bat,ps1}]
+charset = utf-8-bom
+end_of_line = crlf
indent_style = space
indent_size = 4
@@ -20,4 +22,4 @@ indent_size = 4
[*.js]
indent_style = tab
-indent_size = 2
+indent_size = 2
\ No newline at end of file
diff --git a/.github/renovate.json b/.github/renovate.json
new file mode 100644
index 0000000..3fd97a5
--- /dev/null
+++ b/.github/renovate.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "github>cake-contrib/renovate-presets:cake-recipe",
+ "github>cake-contrib/renovate-presets:github-actions" ],
+ "packageRules": [
+ {
+ "description": "Updates to Cake.Core references are breaking.",
+ "matchPackageNames": ["Cake.Core"],
+ "matchUpdateTypes": ["major"],
+ "labels": ["Breaking Change"]
+ }
+ ]
+}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..38a7c03
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,92 @@
+name: Build
+
+on:
+ push:
+ branches:
+ - master
+ - develop
+ - "feature/**"
+ - "release/**"
+ - "hotfix/**"
+ tags:
+ - "*"
+ paths-ignore:
+ - "README.md"
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [windows-2022, ubuntu-22.04, macos-12]
+
+ env:
+ AZURE_PASSWORD: ${{ secrets.AZURE_PASSWORD }}
+ AZURE_SOURCE: ${{ secrets.AZURE_SOURCE }}
+ AZURE_USER: ${{ secrets.AZURE_USER }}
+ GITHUB_PAT: ${{ secrets.GH_TOKEN }}
+ GPR_PASSWORD: ${{ secrets.GPR_PASSWORD }}
+ GPR_SOURCE: ${{ secrets.GPR_SOURCE }}
+ GPR_USER: ${{ secrets.GPR_USER }}
+ NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
+ NUGET_SOURCE: "https://api.nuget.org/v3/index.json"
+ TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
+ TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
+ TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }}
+ TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }}
+ WYAM_ACCESS_TOKEN: ${{ secrets.WYAM_ACCESS_TOKEN }}
+ WYAM_DEPLOY_BRANCH: "gh-pages"
+ WYAM_DEPLOY_REMOTE: ${{ github.event.repository.html_url }}
+
+ steps:
+ - name: Checkout the repository
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
+
+ - name: Fetch all tags and branches
+ run: git fetch --prune --unshallow
+
+ - name: Cache Tools
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
+ with:
+ path: tools
+ key: ${{ runner.os }}-tools-${{ hashFiles('recipe.cake', '.config/dotnet-tools.json') }}
+
+ # install libgit2-dev on ubuntu, so libgit2sharp works
+ - name: Install libgit-dev
+ if: runner.os == 'Linux'
+ run: sudo apt-get install -y libgit2-dev
+
+ - name: Setup required dotnet versions
+ uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # v4.0.1
+ with:
+ dotnet-version: |
+ 2.1.818
+ 3.1.x
+ 5.0.x
+ 6.0.x
+ 7.0.x
+ 8.0.x
+
+ - name: Build project
+ uses: cake-build/cake-action@1223b6fa067ad192159f43b50cd4f953679b0934 # v2.0.0
+ with:
+ script-path: recipe.cake
+ target: CI
+ verbosity: Normal
+ cake-version: tool-manifest
+
+ - name: Upload Issues-Report
+ uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
+ with:
+ if-no-files-found: warn
+ name: ${{ matrix.os }} Issues
+ path: BuildArtifacts/report.html
+
+ - name: Upload Packages
+ if: runner.os == 'Windows'
+ uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4
+ with:
+ if-no-files-found: warn
+ name: package
+ path: BuildArtifacts/Packages/**/*
\ No newline at end of file
diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml
new file mode 100644
index 0000000..d1e7226
--- /dev/null
+++ b/.github/workflows/release-notes.yml
@@ -0,0 +1,46 @@
+name: Draft Release Notes
+
+on:
+ workflow_dispatch:
+
+jobs:
+ draft-stable:
+ env:
+ GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout the requested branch
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
+ - name: Fetch all tags and branches
+ run: git fetch --prune --unshallow
+ - name: Cache Tools
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
+ with:
+ path: tools
+ key: ${{ runner.os }}-tools-${{ hashFiles('recipe.cake', '.config/dotnet-tools.json') }}
+ - name: Set up git version
+ if: ${{ !contains(github.ref, '/hotfix/') && !contains(github.ref, '/release/') }}
+ uses: gittools/actions/gitversion/setup@d2063e59b58a89fa78aa5efa39f6efb8ffea7308 # v2.0.1
+ with:
+ versionSpec: "5.x"
+ - name: Run git version
+ if: ${{ !contains(github.ref, '/hotfix/') && !contains(github.ref, '/release/') }}
+ id: gitversion
+ uses: gittools/actions/gitversion/execute@d2063e59b58a89fa78aa5efa39f6efb8ffea7308 # v2.0.1
+ - name: Create release branch ${{ github.event.inputs.version }}
+ if: ${{ steps.gitversion.outputs.majorMinorPatch }}
+ run: git switch -c release/${{ steps.gitversion.outputs.majorMinorPatch }}
+ - name: Push new branch
+ if: ${{ steps.gitversion.outputs.majorMinorPatch }}
+ uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # v0.8.0
+ with:
+ branch: "release/${{ steps.gitversion.outputs.majorMinorPatch }}"
+ github_token: ${{ secrets.GH_TOKEN }}
+ - name: Drafting Release Notes
+ uses: cake-build/cake-action@1223b6fa067ad192159f43b50cd4f953679b0934 # v2.0.0
+ with:
+ script-path: recipe.cake
+ target: releasenotes
+ verbosity: Normal
+ cake-version: tool-manifest
diff --git a/GitReleaseManager.yaml b/GitReleaseManager.yaml
index e0975a8..b63a763 100644
--- a/GitReleaseManager.yaml
+++ b/GitReleaseManager.yaml
@@ -1,12 +1,14 @@
issue-labels-include:
- Breaking change
-- Feature
- Bug
+- Feature
+- Enhancement
- Improvement
- Documentation
- security
issue-labels-exclude:
- Build
+- Internal / Refactoring
issue-labels-alias:
- name: Documentation
header: Documentation
@@ -14,3 +16,33 @@ issue-labels-alias:
- name: security
header: Security
plural: Security
+create:
+ include-footer: true
+ footer-heading: Where to get it
+ footer-content: >
+ You can download this release from
+ [nuget](https://nuget.org/packages/Cake.Chocolatey.Module/{milestone}),
+ or you can just reference it in a cake build script
+ with `#addin nuget:?package=Cake.Chocolatey.Module&version={milestone}`.
+ footer-includes-milestone: true
+ milestone-replace-text: "{milestone}"
+ include-sha-section: true
+ sha-section-heading: "SHA256 Hashes of the release artifacts"
+ sha-section-line-format: "- `{1}\t{0}`"
+export:
+ include-created-date-in-title: true
+ created-date-string-format: yyyy-MM-dd
+ perform-regex-removal: true
+ regex-text: '[\r\n]*### Where to get it[\r\n]*You can .*`\.[\r\n]*'
+ multiline-regex: true
+close:
+ use-issue-comments: true
+ issue-comment: |-
+ :tada: This issue has been resolved in version {milestone} :tada:
+
+ The release is available on:
+
+ - [GitHub Release](https://github.com/{owner}/{repository}/releases/tag/{milestone})
+ - [NuGet Package](https://www.nuget.org/packages/{repository}/{milestone})
+
+ Your **[GitReleaseManager](https://github.com/GitTools/GitReleaseManager)** bot :package::rocket:
diff --git a/README.md b/README.md
index b12654c..4f025fb 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Cake.Chocolatey.Module
-Cake.Chocolatey.Module is a Module for Cake, which extends it with a new IPackageInstaller for installing tools using the Chocolatey Application Package Manager
+Cake.Chocolatey.Module is a Module for Cake, which extends it with a new IPackageInstaller for installing tools using the Chocolatey Application Package Manager.
[![License](http://img.shields.io/:license-mit-blue.svg)](http://cake-contrib.mit-license.org)
@@ -25,11 +25,11 @@ Cake.Chocolatey.Module is a Module for Cake, which extends it with a new IPackag
- [Documentation](https://cake-contrib.github.io/Cake.Chocolatey.Module)
-## Chat Room
+## Discussion
-Come join in the conversation about Cake.Chocolatey.Module in our Gitter Chat Room
+If you have questions, search for an existing one, or create a new discussion on the Cake GitHub repository, using the `extension-q-a` category.
-[![Join the chat at https://gitter.im/cake-contrib/Lobby](https://badges.gitter.im/cake-contrib/Lobby.svg)](https://gitter.im/cake-contrib/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Join in the discussion on the Cake repository](https://img.shields.io/badge/GitHub-Discussions-green?logo=github)](https://github.com/cake-build/cake/discussions)
## Build
diff --git a/Source/.editorconfig b/Source/.editorconfig
new file mode 100644
index 0000000..5a0258f
--- /dev/null
+++ b/Source/.editorconfig
@@ -0,0 +1,241 @@
+
+# This may not be needed, but kept for compatibility with VS
+[*.{sln,csproj}]
+end_of_line = crlf
+indent_size = 2
+
+# C# files
+[*.cs]
+
+#### Core EditorConfig Options ####
+
+# Indentation and spacing
+indent_size = 4
+indent_style = space
+tab_width = 4
+
+# New line preferences
+end_of_line = crlf
+insert_final_newline = true
+
+#### .NET Coding Conventions ####
+
+# Organize usings
+dotnet_separate_import_directive_groups = true
+dotnet_sort_system_directives_first = true
+file_header_template = unset
+
+# this. and Me. preferences
+dotnet_style_qualification_for_event = false:warning
+dotnet_style_qualification_for_field = false:warning
+dotnet_style_qualification_for_method = false:warning
+dotnet_style_qualification_for_property = false:warning
+
+# Language keywords vs BCL types preferences
+dotnet_style_predefined_type_for_locals_parameters_members = true:warning
+dotnet_style_predefined_type_for_member_access = true:warning
+
+# Parentheses preferences
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
+dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
+dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
+
+# Modifier preferences
+dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning
+
+# Expression-level preferences
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_prefer_auto_properties = true:silent
+dotnet_style_prefer_compound_assignment = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:silent
+dotnet_style_prefer_conditional_expression_over_return = true:silent
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
+dotnet_style_prefer_simplified_interpolation = true:suggestion
+
+# Field preferences
+dotnet_style_readonly_field = true:suggestion
+
+# Parameter preferences
+dotnet_code_quality_unused_parameters = all:suggestion
+
+#### C# Coding Conventions ####
+
+# var preferences
+csharp_style_var_elsewhere = false:silent
+csharp_style_var_for_built_in_types = false:silent
+csharp_style_var_when_type_is_apparent = false:silent
+
+# Expression-bodied members
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+
+# Pattern matching preferences
+csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
+csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
+csharp_style_prefer_switch_expression = true:suggestion
+
+# Null-checking preferences
+csharp_style_conditional_delegate_call = true:suggestion
+
+# Modifier preferences
+csharp_prefer_static_local_function = true:suggestion
+csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
+
+# Code-block preferences
+csharp_prefer_braces = true:silent
+csharp_prefer_simple_using_statement = true:suggestion
+
+# Expression-level preferences
+csharp_prefer_simple_default_expression = true:suggestion
+csharp_style_deconstructed_variable_declaration = true:suggestion
+csharp_style_inlined_variable_declaration = true:suggestion
+csharp_style_pattern_local_over_anonymous_function = true:suggestion
+csharp_style_prefer_index_operator = true:suggestion
+csharp_style_prefer_range_operator = true:suggestion
+csharp_style_throw_expression = true:suggestion
+csharp_style_unused_value_assignment_preference = discard_variable:suggestion
+csharp_style_unused_value_expression_statement_preference = discard_variable:silent
+
+# 'using' directive preferences
+csharp_using_directive_placement = outside_namespace:warning
+
+#### C# Formatting Rules ####
+
+# New line preferences
+csharp_new_line_before_catch = true
+csharp_new_line_before_else = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_anonymous_types = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_open_brace = all
+csharp_new_line_between_query_expression_clauses = true
+
+# Indentation preferences
+csharp_indent_block_contents = true
+csharp_indent_braces = false
+csharp_indent_case_contents = true
+csharp_indent_case_contents_when_block = false
+csharp_indent_labels = flush_left
+csharp_indent_switch_labels = true
+
+# Space preferences
+csharp_space_after_cast = false
+csharp_space_after_colon_in_inheritance_clause = true
+csharp_space_after_comma = true
+csharp_space_after_dot = false
+csharp_space_after_keywords_in_control_flow_statements = true
+csharp_space_after_semicolon_in_for_statement = true
+csharp_space_around_binary_operators = before_and_after
+csharp_space_around_declaration_statements = false
+csharp_space_before_colon_in_inheritance_clause = true
+csharp_space_before_comma = false
+csharp_space_before_dot = false
+csharp_space_before_open_square_brackets = false
+csharp_space_before_semicolon_in_for_statement = false
+csharp_space_between_empty_square_brackets = false
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+csharp_space_between_method_call_parameter_list_parentheses = false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+csharp_space_between_method_declaration_name_and_open_parenthesis = false
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+csharp_space_between_parentheses = false
+csharp_space_between_square_brackets = false
+
+# Wrapping preferences
+csharp_preserve_single_line_blocks = true
+csharp_preserve_single_line_statements = false
+
+#### Naming styles ####
+
+# Naming rules
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = warning
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.method_should_be_pascal_case.severity = warning
+dotnet_naming_rule.method_should_be_pascal_case.symbols = method
+dotnet_naming_rule.method_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.severity = warning
+dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.symbols = public_or_protected_field
+dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.private_or_internal_static_field_should_be_pascal_case.severity = warning
+dotnet_naming_rule.private_or_internal_static_field_should_be_pascal_case.symbols = private_or_internal_static_field
+dotnet_naming_rule.private_or_internal_static_field_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.private_or_internal_field_should_be_camelcase_with_underscore.severity = warning
+dotnet_naming_rule.private_or_internal_field_should_be_camelcase_with_underscore.symbols = private_or_internal_field
+dotnet_naming_rule.private_or_internal_field_should_be_camelcase_with_underscore.style = camelcase_with_underscore
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = warning
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# Symbol specifications
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.method.applicable_kinds = method
+dotnet_naming_symbols.method.applicable_accessibilities = public
+dotnet_naming_symbols.method.required_modifiers =
+
+dotnet_naming_symbols.public_or_protected_field.applicable_kinds = field
+dotnet_naming_symbols.public_or_protected_field.applicable_accessibilities = public, protected
+dotnet_naming_symbols.public_or_protected_field.required_modifiers =
+
+dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
+dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private, private_protected
+dotnet_naming_symbols.private_or_internal_field.required_modifiers =
+
+dotnet_naming_symbols.private_or_internal_static_field.applicable_kinds = field
+dotnet_naming_symbols.private_or_internal_static_field.applicable_accessibilities = internal, private, private_protected
+dotnet_naming_symbols.private_or_internal_static_field.required_modifiers = static
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.required_modifiers =
+
+dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
+dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.non_field_members.required_modifiers =
+
+# Naming styles
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
+
+dotnet_naming_style.camelcase_with_underscore.required_prefix = _
+dotnet_naming_style.camelcase_with_underscore.required_suffix =
+dotnet_naming_style.camelcase_with_underscore.word_separator =
+dotnet_naming_style.camelcase_with_underscore.capitalization = camel_case
\ No newline at end of file
diff --git a/Source/Cake.Chocolatey.Module.Tests/Cake.Chocolatey.Module.Tests.csproj b/Source/Cake.Chocolatey.Module.Tests/Cake.Chocolatey.Module.Tests.csproj
index a36f159..77224e1 100644
--- a/Source/Cake.Chocolatey.Module.Tests/Cake.Chocolatey.Module.Tests.csproj
+++ b/Source/Cake.Chocolatey.Module.Tests/Cake.Chocolatey.Module.Tests.csproj
@@ -1,24 +1,28 @@
-
-
-
- netcoreapp2.0
-
-
-
-
- all
+
+
+
+ netcoreapp3.1
+
+
+
+
+ all
+
+
+ all
-
- all
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Cake.Chocolatey.Module.Tests/packages.config b/Source/Cake.Chocolatey.Module.Tests/packages.config
deleted file mode 100644
index 5f2156d..0000000
--- a/Source/Cake.Chocolatey.Module.Tests/packages.config
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.ruleset b/Source/Cake.Chocolatey.Module.ruleset
similarity index 97%
rename from Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.ruleset
rename to Source/Cake.Chocolatey.Module.ruleset
index be6bff4..7ce5887 100644
--- a/Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.ruleset
+++ b/Source/Cake.Chocolatey.Module.ruleset
@@ -1,78 +1,78 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Cake.Chocolatey.Module.sln b/Source/Cake.Chocolatey.Module.sln
index cef2e0a..26f03c7 100644
--- a/Source/Cake.Chocolatey.Module.sln
+++ b/Source/Cake.Chocolatey.Module.sln
@@ -1,28 +1,34 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Chocolatey.Module", "Cake.Chocolatey.Module\Cake.Chocolatey.Module.csproj", "{666C4FA1-0963-4836-9E54-89FBBE4C9381}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Chocolatey.Module.Tests", "Cake.Chocolatey.Module.Tests\Cake.Chocolatey.Module.Tests.csproj", "{1A12838D-0FD6-448E-834F-23927CF9D91E}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Release|Any CPU.Build.0 = Release|Any CPU
- {1A12838D-0FD6-448E-834F-23927CF9D91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1A12838D-0FD6-448E-834F-23927CF9D91E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1A12838D-0FD6-448E-834F-23927CF9D91E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1A12838D-0FD6-448E-834F-23927CF9D91E}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Chocolatey.Module", "Cake.Chocolatey.Module\Cake.Chocolatey.Module.csproj", "{666C4FA1-0963-4836-9E54-89FBBE4C9381}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Chocolatey.Module.Tests", "Cake.Chocolatey.Module.Tests\Cake.Chocolatey.Module.Tests.csproj", "{1A12838D-0FD6-448E-834F-23927CF9D91E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{9EB0B68C-69C5-40C0-97FE-2524B51F60B2}"
+ ProjectSection(SolutionItems) = preProject
+ Directory.Build.props = Directory.Build.props
+ Directory.Build.targets = Directory.Build.targets
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {666C4FA1-0963-4836-9E54-89FBBE4C9381}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1A12838D-0FD6-448E-834F-23927CF9D91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A12838D-0FD6-448E-834F-23927CF9D91E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1A12838D-0FD6-448E-834F-23927CF9D91E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1A12838D-0FD6-448E-834F-23927CF9D91E}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.csproj b/Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.csproj
index 75f038e..fa16018 100644
--- a/Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.csproj
+++ b/Source/Cake.Chocolatey.Module/Cake.Chocolatey.Module.csproj
@@ -2,16 +2,46 @@
netstandard2.0
true
+ $(ProjectDir)../Cake.Chocolatey.Module.ruleset
+
+
+
+
+
+
+
- Cake.Chocolatey.Module.ruleset
-
-
- TRACE;DEBUG;NETSTANDARD
+
+ Gary Ewan Park
+ Copyright (c) Cake Contributions 2016 - Present
+ Cake Module that extends Cake with ability to install tools using Chocolatey.
+This version was build for Cake v$(CakeVersion)
+ MIT
+ https://github.com/cake-contrib/Cake.Chocolatey.Module
+ cake;script;build;chocolatey;module;cake-build;cake-module
+ $(PackageProjectUrl).git
+ This version was build for Cake v$(CakeVersion).
+For details see $(PackageProjectUrl)/releases
+ 0.0.0
+ README.md
-
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/Source/Cake.Chocolatey.Module/ChocolateyContentResolver.cs b/Source/Cake.Chocolatey.Module/ChocolateyContentResolver.cs
index 51605eb..9a82043 100644
--- a/Source/Cake.Chocolatey.Module/ChocolateyContentResolver.cs
+++ b/Source/Cake.Chocolatey.Module/ChocolateyContentResolver.cs
@@ -5,11 +5,14 @@
using Cake.Core.IO;
using Cake.Core.Packaging;
+using JetBrains.Annotations;
+
namespace Cake.Chocolatey.Module
{
///
/// Locates and lists contents of Chocolatey Packages.
///
+ [UsedImplicitly]
public class ChocolateyContentResolver : IChocolateyContentResolver
{
private readonly IFileSystem _fileSystem;
@@ -108,4 +111,4 @@ private IEnumerable GetFiles(DirectoryPath path, PackageReference package
return collection.Select(p => _fileSystem.GetFile(p)).ToArray();
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/Cake.Chocolatey.Module/ChocolateyModule.cs b/Source/Cake.Chocolatey.Module/ChocolateyModule.cs
index a7bad18..f92f605 100644
--- a/Source/Cake.Chocolatey.Module/ChocolateyModule.cs
+++ b/Source/Cake.Chocolatey.Module/ChocolateyModule.cs
@@ -2,12 +2,15 @@
using Cake.Core.Composition;
using Cake.Core.Packaging;
+using JetBrains.Annotations;
+
namespace Cake.Chocolatey.Module
{
///
/// The module responsible for registering
/// default types in the Cake.Chocolatey.Module assembly.
///
+ [PublicAPI]
public sealed class ChocolateyModule : ICakeModule
{
///
@@ -25,4 +28,4 @@ public void Register(ICakeContainerRegistrar registrar)
registrar.RegisterType().As().Singleton();
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/Cake.Chocolatey.Module/ChocolateyPackageInstaller.cs b/Source/Cake.Chocolatey.Module/ChocolateyPackageInstaller.cs
index 62a26bd..12a1a98 100644
--- a/Source/Cake.Chocolatey.Module/ChocolateyPackageInstaller.cs
+++ b/Source/Cake.Chocolatey.Module/ChocolateyPackageInstaller.cs
@@ -27,33 +27,13 @@ public sealed class ChocolateyPackageInstaller : IPackageInstaller
/// The process runner.
/// The log.
/// The Chocolatey Package Content Resolver.
- /// the configuration
+ /// the configuration.
public ChocolateyPackageInstaller(ICakeEnvironment environment, IProcessRunner processRunner, ICakeLog log, IChocolateyContentResolver contentResolver, ICakeConfiguration config)
{
- if (environment == null)
- {
- throw new ArgumentNullException(nameof(environment));
- }
-
- if (processRunner == null)
- {
- throw new ArgumentNullException(nameof(processRunner));
- }
-
- if (log == null)
- {
- throw new ArgumentNullException(nameof(log));
- }
-
- if (contentResolver == null)
- {
- throw new ArgumentNullException(nameof(contentResolver));
- }
-
- _environment = environment;
- _processRunner = processRunner;
- _log = log;
- _contentResolver = contentResolver;
+ _environment = environment ?? throw new ArgumentNullException(nameof(environment));
+ _processRunner = processRunner ?? throw new ArgumentNullException(nameof(processRunner));
+ _log = log ?? throw new ArgumentNullException(nameof(log));
+ _contentResolver = contentResolver ?? throw new ArgumentNullException(nameof(contentResolver));
_config = config;
}
@@ -164,4 +144,4 @@ private static ProcessArgumentBuilder GetArguments(
return arguments;
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/Cake.Chocolatey.Module/Constants.cs b/Source/Cake.Chocolatey.Module/Constants.cs
index 530655a..0591f4d 100644
--- a/Source/Cake.Chocolatey.Module/Constants.cs
+++ b/Source/Cake.Chocolatey.Module/Constants.cs
@@ -1,19 +1,19 @@
namespace Cake.Chocolatey.Module
{
///
- /// Constants Class
+ /// Constants Class.
///
internal static class Constants
{
///
- /// Chocolatey Constants
+ /// Chocolatey Constants.
///
public static class Chocolatey
{
///
- /// The config key name for overriding the default chocolatey package source
+ /// The config key name for overriding the default chocolatey package source.
///
public const string Source = "Chocolatey_Source";
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/Cake.Chocolatey.Module/packages.config b/Source/Cake.Chocolatey.Module/packages.config
deleted file mode 100644
index b455fbb..0000000
--- a/Source/Cake.Chocolatey.Module/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/Directory.Build.props b/Source/Directory.Build.props
new file mode 100644
index 0000000..35525a1
--- /dev/null
+++ b/Source/Directory.Build.props
@@ -0,0 +1,5 @@
+
+
+ 0.33.0
+
+
\ No newline at end of file
diff --git a/Source/Directory.Build.targets b/Source/Directory.Build.targets
new file mode 100644
index 0000000..86e3c03
--- /dev/null
+++ b/Source/Directory.Build.targets
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+ true
+ true
+ $([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)'))
+
+
+
+
+
+
+
+
+
+
+ <_LocalTopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''"/>
+
+
+
diff --git a/Source/stylecop.json b/Source/stylecop.json
new file mode 100644
index 0000000..3d7a981
--- /dev/null
+++ b/Source/stylecop.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
+ "settings": {
+ "indentation": {
+ "indentationSize": 4,
+ "tabSize": 4,
+ "useTabs": false
+ },
+ "orderingRules": {
+ "usingDirectivesPlacement": "outsideNamespace",
+ "blankLinesBetweenUsingGroups": "allow",
+ "systemUsingDirectivesFirst": true
+ },
+ "documentationRules": {
+ "xmlHeader": false,
+ "documentExposedElements": true,
+ "documentInternalElements": false,
+ "documentPrivateElements": false,
+ "documentPrivateFields": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/build.ps1 b/build.ps1
index 0b70945..35df8f8 100644
--- a/build.ps1
+++ b/build.ps1
@@ -1,256 +1,11 @@
-##########################################################################
-# This is the Cake bootstrapper script for PowerShell.
-# This file was downloaded from https://github.com/cake-build/resources
-# Feel free to change this file to fit your needs.
-##########################################################################
+Set-Location -LiteralPath $PSScriptRoot
-<#
+$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
+$env:DOTNET_CLI_TELEMETRY_OPTOUT = '1'
+$env:DOTNET_NOLOGO = '1'
-.SYNOPSIS
-This is a Powershell script to bootstrap a Cake build.
+dotnet tool restore
+if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
-.DESCRIPTION
-This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
-and execute your Cake build script with the parameters you provide.
-
-.PARAMETER Script
-The build script to execute.
-.PARAMETER Target
-The build script target to run.
-.PARAMETER Configuration
-The build configuration to use.
-.PARAMETER Verbosity
-Specifies the amount of information to be displayed.
-.PARAMETER ShowDescription
-Shows description about tasks.
-.PARAMETER DryRun
-Performs a dry run.
-.PARAMETER SkipToolPackageRestore
-Skips restoring of packages.
-.PARAMETER ScriptArgs
-Remaining arguments are added here.
-
-.LINK
-https://cakebuild.net
-
-#>
-
-[CmdletBinding()]
-Param(
- [string]$Script = "recipe.cake",
- [string]$Target,
- [string]$Configuration,
- [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
- [string]$Verbosity,
- [switch]$ShowDescription,
- [Alias("WhatIf", "Noop")]
- [switch]$DryRun,
- [switch]$SkipToolPackageRestore,
- [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
- [string[]]$ScriptArgs
-)
-
-# Attempt to set highest encryption available for SecurityProtocol.
-# PowerShell will not set this by default (until maybe .NET 4.6.x). This
-# will typically produce a message for PowerShell v2 (just an info
-# message though)
-try {
- # Set TLS 1.2 (3072), then TLS 1.1 (768), then TLS 1.0 (192), finally SSL 3.0 (48)
- # Use integers because the enumeration values for TLS 1.2 and TLS 1.1 won't
- # exist in .NET 4.0, even though they are addressable if .NET 4.5+ is
- # installed (.NET 4.5 is an in-place upgrade).
- # PowerShell Core already has support for TLS 1.2 so we can skip this if running in that.
- if (-not $IsCoreCLR) {
- [System.Net.ServicePointManager]::SecurityProtocol = 3072 -bor 768 -bor 192 -bor 48
- }
- } catch {
- Write-Output 'Unable to set PowerShell to use TLS 1.2 and TLS 1.1 due to old .NET Framework installed. If you see underlying connection closed or trust errors, you may need to upgrade to .NET Framework 4.5+ and PowerShell v3'
- }
-
-[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
-function MD5HashFile([string] $filePath)
-{
- if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
- {
- return $null
- }
-
- [System.IO.Stream] $file = $null;
- [System.Security.Cryptography.MD5] $md5 = $null;
- try
- {
- $md5 = [System.Security.Cryptography.MD5]::Create()
- $file = [System.IO.File]::OpenRead($filePath)
- return [System.BitConverter]::ToString($md5.ComputeHash($file))
- }
- finally
- {
- if ($file -ne $null)
- {
- $file.Dispose()
- }
- }
-}
-
-function GetProxyEnabledWebClient
-{
- $wc = New-Object System.Net.WebClient
- $proxy = [System.Net.WebRequest]::GetSystemWebProxy()
- $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
- $wc.Proxy = $proxy
- return $wc
-}
-
-Write-Host "Preparing to run build script..."
-
-if(!$PSScriptRoot){
- $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
-}
-
-$TOOLS_DIR = Join-Path $PSScriptRoot "tools"
-$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins"
-$MODULES_DIR = Join-Path $TOOLS_DIR "Modules"
-$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
-$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
-$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
-$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
-$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
-$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config"
-$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config"
-
-# Make sure tools folder exists
-if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
- Write-Verbose -Message "Creating tools directory..."
- New-Item -Path $TOOLS_DIR -Type Directory | Out-Null
-}
-
-# Make sure that packages.config exist.
-if (!(Test-Path $PACKAGES_CONFIG)) {
- Write-Verbose -Message "Downloading packages.config..."
- try {
- $wc = GetProxyEnabledWebClient
- $wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG)
- } catch {
- Throw "Could not download packages.config."
- }
-}
-
-# Try find NuGet.exe in path if not exists
-if (!(Test-Path $NUGET_EXE)) {
- Write-Verbose -Message "Trying to find nuget.exe in PATH..."
- $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) }
- $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
- if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
- Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
- $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
- }
-}
-
-# Try download NuGet.exe if not exists
-if (!(Test-Path $NUGET_EXE)) {
- Write-Verbose -Message "Downloading NuGet.exe..."
- try {
- $wc = GetProxyEnabledWebClient
- $wc.DownloadFile($NUGET_URL, $NUGET_EXE)
- } catch {
- Throw "Could not download NuGet.exe."
- }
-}
-
-# Save nuget.exe path to environment to be available to child processed
-$env:NUGET_EXE = $NUGET_EXE
-$env:NUGET_EXE_INVOCATION = if ($IsLinux -or $IsMacOS) {
- "mono `"$NUGET_EXE`""
-} else {
- "`"$NUGET_EXE`""
-}
-
-# Restore tools from NuGet?
-if(-Not $SkipToolPackageRestore.IsPresent) {
- Push-Location
- Set-Location $TOOLS_DIR
-
- # Check for changes in packages.config and remove installed tools if true.
- [string] $md5Hash = MD5HashFile $PACKAGES_CONFIG
- if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
- ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
- Write-Verbose -Message "Missing or changed package.config hash..."
- Get-ChildItem -Exclude packages.config,nuget.exe,Cake.Bakery |
- Remove-Item -Recurse
- }
-
- Write-Verbose -Message "Restoring tools from NuGet..."
-
- $NuGetOutput = Invoke-Expression "& $env:NUGET_EXE_INVOCATION install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
-
- if ($LASTEXITCODE -ne 0) {
- Throw "An error occurred while restoring NuGet tools."
- }
- else
- {
- $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
- }
- Write-Verbose -Message ($NuGetOutput | Out-String)
-
- Pop-Location
-}
-
-# Restore addins from NuGet
-if (Test-Path $ADDINS_PACKAGES_CONFIG) {
- Push-Location
- Set-Location $ADDINS_DIR
-
- Write-Verbose -Message "Restoring addins from NuGet..."
- $NuGetOutput = Invoke-Expression "& $env:NUGET_EXE_INVOCATION install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`""
-
- if ($LASTEXITCODE -ne 0) {
- Throw "An error occurred while restoring NuGet addins."
- }
-
- Write-Verbose -Message ($NuGetOutput | Out-String)
-
- Pop-Location
-}
-
-# Restore modules from NuGet
-if (Test-Path $MODULES_PACKAGES_CONFIG) {
- Push-Location
- Set-Location $MODULES_DIR
-
- Write-Verbose -Message "Restoring modules from NuGet..."
- $NuGetOutput = Invoke-Expression "& $env:NUGET_EXE_INVOCATION install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`""
-
- if ($LASTEXITCODE -ne 0) {
- Throw "An error occurred while restoring NuGet modules."
- }
-
- Write-Verbose -Message ($NuGetOutput | Out-String)
-
- Pop-Location
-}
-
-# Make sure that Cake has been installed.
-if (!(Test-Path $CAKE_EXE)) {
- Throw "Could not find Cake.exe at $CAKE_EXE"
-}
-
-$CAKE_EXE_INVOCATION = if ($IsLinux -or $IsMacOS) {
- "mono `"$CAKE_EXE`""
-} else {
- "`"$CAKE_EXE`""
-}
-
-
-# Build Cake arguments
-$cakeArguments = @("$Script");
-if ($Target) { $cakeArguments += "-target=$Target" }
-if ($Configuration) { $cakeArguments += "-configuration=$Configuration" }
-if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" }
-if ($ShowDescription) { $cakeArguments += "-showdescription" }
-if ($DryRun) { $cakeArguments += "-dryrun" }
-$cakeArguments += $ScriptArgs
-
-# Start Cake
-Write-Host "Running build script..."
-Invoke-Expression "& $CAKE_EXE_INVOCATION $($cakeArguments -join " ")"
-exit $LASTEXITCODE
+dotnet cake recipe.cake @args
+if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
diff --git a/build.sh b/build.sh
index 7fc4599..9863e90 100755
--- a/build.sh
+++ b/build.sh
@@ -1,117 +1,12 @@
#!/usr/bin/env bash
+set -euox pipefail
-##########################################################################
-# This is the Cake bootstrapper script for Linux and OS X.
-# This file was downloaded from https://github.com/cake-build/resources
-# Feel free to change this file to fit your needs.
-##########################################################################
+cd "$(dirname "${BASH_SOURCE[0]}")"
-# Define directories.
-SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-TOOLS_DIR=$SCRIPT_DIR/tools
-ADDINS_DIR=$TOOLS_DIR/Addins
-MODULES_DIR=$TOOLS_DIR/Modules
-NUGET_EXE=$TOOLS_DIR/nuget.exe
-CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe
-PACKAGES_CONFIG=$TOOLS_DIR/packages.config
-PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum
-ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config
-MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config
+export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+export DOTNET_CLI_TELEMETRY_OPTOUT=1
+export DOTNET_NOLOGO=1
-# Define md5sum or md5 depending on Linux/OSX
-MD5_EXE=
-if [[ "$(uname -s)" == "Darwin" ]]; then
- MD5_EXE="md5 -r"
-else
- MD5_EXE="md5sum"
-fi
+dotnet tool restore
-# Define default arguments.
-SCRIPT="recipe.cake"
-CAKE_ARGUMENTS=()
-
-# Parse arguments.
-for i in "$@"; do
- case $1 in
- -s|--script) SCRIPT="$2"; shift ;;
- --) shift; CAKE_ARGUMENTS+=("$@"); break ;;
- *) CAKE_ARGUMENTS+=("$1") ;;
- esac
- shift
-done
-
-# Make sure the tools folder exist.
-if [ ! -d "$TOOLS_DIR" ]; then
- mkdir "$TOOLS_DIR"
-fi
-
-# Make sure that packages.config exist.
-if [ ! -f "$TOOLS_DIR/packages.config" ]; then
- echo "Downloading packages.config..."
- curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages
- if [ $? -ne 0 ]; then
- echo "An error occurred while downloading packages.config."
- exit 1
- fi
-fi
-
-# Download NuGet if it does not exist.
-if [ ! -f "$NUGET_EXE" ]; then
- echo "Downloading NuGet..."
- curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
- if [ $? -ne 0 ]; then
- echo "An error occurred while downloading nuget.exe."
- exit 1
- fi
-fi
-
-# Restore tools from NuGet.
-pushd "$TOOLS_DIR" >/dev/null
-if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$( cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//' )" != "$( $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' )" ]; then
- find . -type d ! -name . ! -name 'Cake.Bakery' | xargs rm -rf
-fi
-
-mono "$NUGET_EXE" install -ExcludeVersion
-if [ $? -ne 0 ]; then
- echo "Could not restore NuGet tools."
- exit 1
-fi
-
-$MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >| "$PACKAGES_CONFIG_MD5"
-
-popd >/dev/null
-
-# Restore addins from NuGet.
-if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then
- pushd "$ADDINS_DIR" >/dev/null
-
- mono "$NUGET_EXE" install -ExcludeVersion
- if [ $? -ne 0 ]; then
- echo "Could not restore NuGet addins."
- exit 1
- fi
-
- popd >/dev/null
-fi
-
-# Restore modules from NuGet.
-if [ -f "$MODULES_PACKAGES_CONFIG" ]; then
- pushd "$MODULES_DIR" >/dev/null
-
- mono "$NUGET_EXE" install -ExcludeVersion
- if [ $? -ne 0 ]; then
- echo "Could not restore NuGet modules."
- exit 1
- fi
-
- popd >/dev/null
-fi
-
-# Make sure that Cake has been installed.
-if [ ! -f "$CAKE_EXE" ]; then
- echo "Could not find Cake.exe at '$CAKE_EXE'."
- exit 1
-fi
-
-# Start Cake
-exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}"
+dotnet cake recipe.cake "$@"
diff --git a/docs/input/blog/new-release-0.1.0.md b/docs/input/blog/new-release-0.1.0.md
deleted file mode 100644
index c14275f..0000000
--- a/docs/input/blog/new-release-0.1.0.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-Title: New Release - 0.1.0
-Published: 18/3/2017
-Category: Release
-Author: gep13
----
-
-# Announcing the 0.1.0 release of Cake.Chocolatey.Module
-
-We are very pleased to announce this initial release of the Cake.Chocolatey.Module.
-
-This included basic support for installing applications as part of your build process using the familiar pre-processor directive syntax used when installing tools and addins from NuGet.org.
-
-An example of how this is achieved is shown below:
-
-```
-#tool choco:?package=nodejs.install&version=7.7.3
-```
-
-Check out the documentation for more information.
-
-Please do not hesitate to reach out in the [Gitter Channel](https://gitter.im/cake-contrib/Lobby) if you have any issues using this addin.
\ No newline at end of file
diff --git a/docs/input/blog/new-release-0.1.1.md b/docs/input/blog/new-release-0.1.1.md
deleted file mode 100644
index e735101..0000000
--- a/docs/input/blog/new-release-0.1.1.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-Title: New Release - 0.1.1
-Published: 18/3/2017
-Category: Release
-Author: gep13
----
-
-# Well, this is a little bit embarassing...
-
-Looks like I missed an important step when committing everything for what I thought was going to be the 0.1.0 release! I forgot to include the Cake.Chocolatey.Module.nuspec file, which is used to package up the NuGet package, and which is ultimately used as a trigger for whether a deployment to nuget.org is actually required.
-
-This problem has now been corrected, and you can find the 0.1.1 release of the Cake.Chocolatey.Module here:
-
-https://www.nuget.org/packages/Cake.Chocolatey.Module/
-
-Please do not hesitate to reach out in the [Gitter Channel](https://gitter.im/cake-contrib/Lobby) if you have any issues using this addin.
\ No newline at end of file
diff --git a/nuspec/nuget/Cake.Chocolatey.Module.nuspec b/nuspec/nuget/Cake.Chocolatey.Module.nuspec
deleted file mode 100644
index 9c36ab4..0000000
--- a/nuspec/nuget/Cake.Chocolatey.Module.nuspec
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- Cake.Chocolatey.Module
- 0.0.0
- gep13
- gep13, cake-contrib
- Cake Chocolatey Module.
- Cake Module that extends Cake with ability to install tools using Chocolatey.
- MIT
-
- https://github.com/cake-contrib/Cake.Chocolatey.Module/
- https://cdn.jsdelivr.net/gh/cake-contrib/graphics/png/cake-contrib-medium.png
- false
- Copyright (c) Cake Contributions 2016 - Present
- Cake, Script, Build, Chocolatey, Module
-
-
-
-
-
-
-
diff --git a/recipe.cake b/recipe.cake
index a45c320..44aed03 100644
--- a/recipe.cake
+++ b/recipe.cake
@@ -1,4 +1,4 @@
-#load nuget:?package=Cake.Recipe&version=1.0.0
+#load nuget:?package=Cake.Recipe&version=3.1.1
Environment.SetVariableNames();
@@ -8,16 +8,20 @@ BuildParameters.SetParameters(context: Context,
title: "Cake.Chocolatey.Module",
repositoryOwner: "cake-contrib",
repositoryName: "Cake.Chocolatey.Module",
+ shouldRunCodecov: false,
+ shouldPostToGitter: false,
appVeyorAccountName: "cakecontrib",
- shouldRunGitVersion: true);
+ shouldRunDotNetCorePack: true);
BuildParameters.PrintParameters(Context);
+ToolSettings.SetToolPreprocessorDirectives(
+ gitReleaseManagerGlobalTool: "#tool dotnet:?package=GitReleaseManager.Tool&version=0.18.0");
+
ToolSettings.SetToolSettings(context: Context,
- dupFinderExcludePattern: new string[] {
- BuildParameters.RootDirectoryPath + "/src/Cake.Chocolatey.Module.Tests/*.cs", BuildParameters.RootDirectoryPath + "/Source/Cake.Chocolatey.Module/**/*.AssemblyInfo.cs" },
- testCoverageFilter: "+[*]* -[xunit.*]* -[Cake.Core]* -[Cake.Testing]* -[*.Tests]* ",
+ testCoverageFilter: "+[*]* -[xunit.*]* -[Cake.Core]* -[Cake.Testing]* -[*.Tests]*",
testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*",
testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs");
Build.RunDotNetCore();
+
diff --git a/tools/packages.config b/tools/packages.config
deleted file mode 100644
index f27ab48..0000000
--- a/tools/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-