-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
103 changed files
with
6,725 additions
and
1,907 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
name: pr | ||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
env: | ||
VS_SOLUTION_PATH: ./src/SelfContainedSolutionTest/code-first | ||
PP_UNPACKED_SOLUTION_PATH: ./src/SelfContainedSolutionTest/unpacked-solution | ||
jobs: | ||
main: | ||
runs-on: windows-latest | ||
steps: | ||
- name: git configure long path | ||
run: | | ||
git config --global core.longpaths true | ||
- uses: actions/checkout@v2 | ||
with: | ||
lfs: true | ||
- name: Create Plugin snk | ||
uses: timheuer/[email protected] | ||
with: | ||
fileName: SelfContainedSolutionTest.snk | ||
fileDir: ./src/SelfContainedSolutionTest/code-first/Plugins | ||
encodedString: ${{ secrets.SNK }} | ||
- name: Add msbuild to PATH | ||
uses: microsoft/[email protected] | ||
- name: Setup NuGet.exe for use with actions | ||
uses: NuGet/[email protected] | ||
- name: Setup VSTest Path | ||
uses: darenm/Setup-VSTest@v1 | ||
- name: Restore Packages | ||
run: | | ||
nuget restore ${{ env.VS_SOLUTION_PATH }}/SelfContainedSolutionTest.sln | ||
- name: Build Visual Studio Solution | ||
run: | | ||
msbuild.exe ${{ env.VS_SOLUTION_PATH }}/SelfContainedSolutionTest.sln /p:configuration="Release" | ||
- name: Run Unit Tests | ||
run: | | ||
vstest.console.exe ${{ env.VS_SOLUTION_PATH }}/Plugins.Tests/bin/Release/SelfContainedSolutionTest.Plugins.Tests.dll /Enablecodecoverage /Logger:trx | ||
- name: Copy Unit Test Results | ||
run: | | ||
mkdir reports | ||
Copy-Item (Get-ChildItem *.trx -Recurse)[0].FullName reports/test-report.trx | ||
Copy-Item (Get-ChildItem *.coverage -Recurse)[0] reports/test.coverage | ||
- name: Report Unit Test Results | ||
uses: dorny/test-reporter@v1 | ||
if: success() || failure() | ||
with: | ||
name: Unit Test Results | ||
path: reports/test-report.trx | ||
reporter: dotnet-trx | ||
- name: Convert VS .coverage to Cobertura | ||
uses: danielpalme/[email protected] | ||
with: | ||
reports: reports/test.coverage | ||
targetdir: reports | ||
reporttypes: Cobertura | ||
- name: Attach Coverage Report | ||
uses: 5monkeys/cobertura-action@master | ||
with: | ||
path: reports/Cobertura.xml | ||
report_name: Code Coverage | ||
fail_below_threshold: true | ||
minimum_coverage: 100 | ||
show_line: true | ||
repo_token: ${{ github.token }} | ||
- name: Prepare Power Platform Solution for pack | ||
run: | | ||
# Ran into pack issues with long paths, so moving to a directory to workaround issue | ||
$tempUnpacked = (New-Item -Path "${{ runner.temp }}/u" -ItemType Directory).FullName | ||
Copy-Item "${{ env.PP_UNPACKED_SOLUTION_PATH }}/*" "$tempUnpacked" -Recurse -Force | ||
# need to remove the unpacked canvas code in the _msapp folder | ||
$msappUnpackPath = (Get-ChildItem "$tempUnpacked/CanvasApps/*_msapp")[0].FullName | ||
Remove-Item $msappUnpackPath -Force -Recurse | ||
- name: Copy Plugin dll to Power Platform Solution unpacked folder | ||
run: | | ||
$source = "${{ env.VS_SOLUTION_PATH }}/Plugins/bin/Release/SelfContainedSolutionTest.Plugins.dll" | ||
$destination = "${{ runner.temp }}/u/PluginAssemblies/SelfContainedSolutionTestPlugins-BB2613D0-D86D-4460-B4EE-6042046E2ED9/SelfContainedSolutionTestPlugins.dll" | ||
Copy-Item $source $destination -Force | ||
- name: Pack Power Platform Solution | ||
uses: microsoft/powerplatform-actions/pack-solution@v0 | ||
with: | ||
solution-file: ${{ runner.temp }}/SelfContainedSolutionTest.zip | ||
solution-folder: ${{ runner.temp }}/u | ||
solution-type: Both | ||
- name: Import Power Platform Solution | ||
uses: microsoft/powerplatform-actions/import-solution@v0 | ||
with: | ||
solution-file: ${{ runner.temp }}/SelfContainedSolutionTest_managed.zip | ||
environment-url: ${{ secrets.ENVIRONMENT_URL }} | ||
tenant-id: ${{ secrets.TENANT_ID }} | ||
app-id: ${{ secrets.CLIENT_ID }} | ||
client-secret: ${{ secrets.CLIENT_SECRET }} | ||
force-overwrite: true | ||
use-deployment-settings-file: true | ||
deployment-settings-file: src/SelfContainedSolutionTest/config/deploymentSettings.json | ||
run-asynchronously: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
function Pack ($solutionName) { | ||
$packTemp = "pack-temp" | ||
$vsSolutionPath = "./src/SelfContainedSolutionTest/code-first" | ||
$unpackFolder = "src/$solutionName/unpacked-solution" | ||
$solutionZip = "$packTemp/$solutionName.zip" | ||
$unPackTemp = "$packTemp/u" | ||
|
||
if (Test-Path $unPackTemp) { | ||
Remove-Item "$unPackTemp/*" -Recurse -Force | ||
} | ||
else { | ||
New-Item -Path $unPackTemp -ItemType Directory | ||
} | ||
|
||
Copy-Item "$unpackFolder/*" $unPackTemp -Recurse -Force | ||
|
||
# need to delete _msapp folder before packing | ||
$msappUnpackPath = (Get-ChildItem "$unPackTemp/CanvasApps/*_msapp")[0].FullName | ||
Remove-Item $msappUnpackPath -Force -Recurse | ||
|
||
$source = "$vsSolutionPath/Plugins/bin/Release/SelfContainedSolutionTest.Plugins.dll" | ||
$destination = "$unpackFolder/PluginAssemblies/SelfContainedSolutionTestPlugins-BB2613D0-D86D-4460-B4EE-6042046E2ED9/SelfContainedSolutionTestPlugins.dll" | ||
Copy-Item $source $destination -Force | ||
|
||
#pac solution pack --zipfile $solutionZip --folder $unPackTemp --packagetype both | ||
pac solution pack --zipfile $solutionZip --folder $unPackTemp --packagetype unmanaged | ||
pac solution pack --zipfile $solutionZip.Replace(".zip","_managed.zip") --folder $unPackTemp --packagetype managed | ||
} | ||
Pack "SelfContainedSolutionTest" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
# Remove the line below if you want to inherit .editorconfig settings from higher directories | ||
root = true | ||
|
||
# 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 = false | ||
|
||
#### .NET Coding Conventions #### | ||
|
||
# Organize usings | ||
dotnet_separate_import_directive_groups = false | ||
dotnet_sort_system_directives_first = false | ||
file_header_template = unset | ||
|
||
# this. and Me. preferences | ||
dotnet_style_qualification_for_event = false | ||
dotnet_style_qualification_for_field = false | ||
dotnet_style_qualification_for_method = false | ||
dotnet_style_qualification_for_property = false | ||
|
||
# Language keywords vs BCL types preferences | ||
dotnet_style_predefined_type_for_locals_parameters_members = true | ||
dotnet_style_predefined_type_for_member_access = true | ||
|
||
# Parentheses preferences | ||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity | ||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity | ||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary | ||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity | ||
|
||
# Modifier preferences | ||
dotnet_style_require_accessibility_modifiers = for_non_interface_members | ||
|
||
# Expression-level preferences | ||
dotnet_style_coalesce_expression = true | ||
dotnet_style_collection_initializer = true | ||
dotnet_style_explicit_tuple_names = true | ||
dotnet_style_namespace_match_folder = true | ||
dotnet_style_null_propagation = true | ||
dotnet_style_object_initializer = true | ||
dotnet_style_operator_placement_when_wrapping = beginning_of_line | ||
dotnet_style_prefer_auto_properties = true | ||
dotnet_style_prefer_compound_assignment = true | ||
dotnet_style_prefer_conditional_expression_over_assignment = true | ||
dotnet_style_prefer_conditional_expression_over_return = true | ||
dotnet_style_prefer_inferred_anonymous_type_member_names = true | ||
dotnet_style_prefer_inferred_tuple_names = true | ||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true | ||
dotnet_style_prefer_simplified_boolean_expressions = true | ||
dotnet_style_prefer_simplified_interpolation = true | ||
|
||
# Field preferences | ||
dotnet_style_readonly_field = true | ||
|
||
# Parameter preferences | ||
dotnet_code_quality_unused_parameters = all | ||
|
||
# Suppression preferences | ||
dotnet_remove_unnecessary_suppression_exclusions = none | ||
|
||
# New line preferences | ||
dotnet_style_allow_multiple_blank_lines_experimental = true | ||
dotnet_style_allow_statement_immediately_after_block_experimental = true | ||
|
||
#### C# Coding Conventions #### | ||
|
||
# var preferences | ||
csharp_style_var_elsewhere = true | ||
csharp_style_var_for_built_in_types = true | ||
csharp_style_var_when_type_is_apparent = true | ||
|
||
# Expression-bodied members | ||
csharp_style_expression_bodied_accessors = true | ||
csharp_style_expression_bodied_constructors = false | ||
csharp_style_expression_bodied_indexers = true | ||
csharp_style_expression_bodied_lambdas = true | ||
csharp_style_expression_bodied_local_functions = false | ||
csharp_style_expression_bodied_methods = false | ||
csharp_style_expression_bodied_operators = false | ||
csharp_style_expression_bodied_properties = true | ||
|
||
# Pattern matching preferences | ||
csharp_style_pattern_matching_over_as_with_null_check = true | ||
csharp_style_pattern_matching_over_is_with_cast_check = true | ||
csharp_style_prefer_not_pattern = true | ||
csharp_style_prefer_pattern_matching = true | ||
csharp_style_prefer_switch_expression = true | ||
|
||
# Null-checking preferences | ||
csharp_style_conditional_delegate_call = true | ||
|
||
# Modifier preferences | ||
csharp_prefer_static_local_function = true | ||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async | ||
|
||
# Code-block preferences | ||
csharp_prefer_braces = true | ||
csharp_prefer_simple_using_statement = true | ||
|
||
# Expression-level preferences | ||
csharp_prefer_simple_default_expression = true | ||
csharp_style_deconstructed_variable_declaration = true | ||
csharp_style_implicit_object_creation_when_type_is_apparent = true | ||
csharp_style_inlined_variable_declaration = true | ||
csharp_style_pattern_local_over_anonymous_function = true | ||
csharp_style_prefer_index_operator = true | ||
csharp_style_prefer_range_operator = true | ||
csharp_style_throw_expression = true | ||
csharp_style_unused_value_assignment_preference = discard_variable | ||
csharp_style_unused_value_expression_statement_preference = discard_variable | ||
|
||
# 'using' directive preferences | ||
csharp_using_directive_placement = outside_namespace | ||
|
||
# New line preferences | ||
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true | ||
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true | ||
csharp_style_allow_embedded_statements_on_same_line_experimental = true | ||
|
||
#### 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 = true | ||
csharp_indent_labels = one_less_than_current | ||
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 = true | ||
|
||
#### Naming styles #### | ||
|
||
# Naming rules | ||
|
||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion | ||
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 = suggestion | ||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types | ||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case | ||
|
||
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion | ||
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.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 |
Oops, something went wrong.