-
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
1 parent
9103532
commit b87c3d0
Showing
276 changed files
with
20,702 additions
and
2 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,254 @@ | ||
# http://EditorConfig.org | ||
|
||
root = true | ||
|
||
# Default settings ------------------------------------------------------------- | ||
|
||
[*] | ||
insert_final_newline = true | ||
indent_style = space | ||
indent_size = 4 | ||
end_of_line = lf | ||
charset = utf-8 | ||
|
||
# C# files --------------------------------------------------------------------- | ||
|
||
[*.cs] | ||
|
||
# .NET code style settings ----------------------------------------------------- | ||
|
||
## "This." and "Me." qualifiers | ||
|
||
dotnet_style_qualification_for_field = false:suggestion | ||
dotnet_style_qualification_for_property = false:suggestion | ||
dotnet_style_qualification_for_method = false:suggestion | ||
dotnet_style_qualification_for_event = false:suggestion | ||
|
||
## Language keywords instead of framework type names for type references | ||
|
||
dotnet_style_predefined_type_for_locals_parameters_members = true:warning | ||
dotnet_style_predefined_type_for_member_access = true:warning | ||
|
||
## Modifier preferences | ||
|
||
dotnet_style_require_accessibility_modifiers = always:suggestion | ||
dotnet_style_readonly_field = true:warning | ||
|
||
## Parentheses preferences | ||
|
||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning | ||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning | ||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning | ||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent | ||
|
||
## Expression-level preferences | ||
|
||
dotnet_style_object_initializer = true:suggestion | ||
dotnet_style_collection_initializer = true:suggestion | ||
dotnet_style_explicit_tuple_names = true:suggestion | ||
dotnet_style_prefer_inferred_tuple_names = true:suggestion | ||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion | ||
dotnet_style_prefer_auto_properties = true:warning | ||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning | ||
dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion | ||
dotnet_style_prefer_conditional_expression_over_return = false:suggestion | ||
|
||
## Null-checking preferences | ||
|
||
dotnet_style_coalesce_expression = true:suggestion | ||
dotnet_style_null_propagation = true:warning | ||
|
||
## Formatting conventions | ||
|
||
dotnet_sort_system_directives_first = true | ||
dotnet_separate_import_directive_groups = true | ||
|
||
# C# code style settings ------------------------------------------------------- | ||
|
||
## Using statements | ||
|
||
csharp_style_var_for_built_in_types = true:suggestion | ||
csharp_style_var_when_type_is_apparent = true:suggestion | ||
csharp_style_var_elsewhere = true:suggestion | ||
csharp_style_namespace_declarations = file_scoped:warning | ||
|
||
## Expression-bodied members | ||
|
||
csharp_style_expression_bodied_methods = unset | ||
csharp_style_expression_bodied_constructors = false:suggestion | ||
csharp_style_expression_bodied_operators = false:suggestion | ||
csharp_style_expression_bodied_properties = true:suggestion | ||
csharp_style_expression_bodied_indexers = true:suggestion | ||
csharp_style_expression_bodied_accessors = true:suggestion | ||
|
||
## Pattern matching | ||
|
||
csharp_style_pattern_matching_over_is_with_cast_check = true:warning | ||
csharp_style_pattern_matching_over_as_with_null_check = true:warning | ||
csharp_style_prefer_switch_expression = true:suggestion | ||
|
||
## Inlined variable declarations | ||
|
||
csharp_style_inlined_variable_declaration = true:suggestion | ||
|
||
## Expression-level preferences | ||
|
||
csharp_prefer_simple_default_expression = true:suggestion | ||
csharp_style_deconstructed_variable_declaration = true:suggestion | ||
csharp_style_pattern_local_over_anonymous_function = true:suggestion | ||
|
||
## "Null" checking preferences | ||
|
||
csharp_style_throw_expression = true:suggestion | ||
csharp_style_conditional_delegate_call = false:suggestion | ||
|
||
## Code block preferences | ||
|
||
csharp_prefer_braces = true:error | ||
|
||
## C# formatting settings | ||
|
||
csharp_new_line_before_open_brace = all | ||
csharp_new_line_before_else = true | ||
csharp_new_line_before_catch = true | ||
csharp_new_line_before_finally = true | ||
csharp_new_line_before_members_in_object_initializers = true | ||
csharp_new_line_before_members_in_anonymous_types = true | ||
csharp_new_line_between_query_expression_clauses = true | ||
csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:warning | ||
|
||
## Indentation options | ||
|
||
csharp_indent_case_contents = true | ||
csharp_indent_switch_labels = true | ||
csharp_indent_labels = flush_left | ||
csharp_indent_block_contents = true | ||
csharp_indent_braces = false | ||
|
||
## Spacing options | ||
|
||
csharp_space_after_cast = true | ||
csharp_space_after_keywords_in_control_flow_statements = true | ||
csharp_space_between_method_declaration_parameter_list_parentheses = false | ||
csharp_space_between_method_call_parameter_list_parentheses = false | ||
csharp_space_between_parentheses = false | ||
csharp_space_before_colon_in_inheritance_clause = true | ||
csharp_space_after_colon_in_inheritance_clause = true | ||
csharp_space_around_binary_operators = before_and_after | ||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | ||
csharp_space_between_method_call_name_and_opening_parenthesis = false | ||
csharp_space_between_method_call_empty_parameter_list_parentheses = false | ||
csharp_space_after_comma = true | ||
csharp_space_after_dot = false | ||
csharp_space_before_comma = false | ||
csharp_space_before_dot = false | ||
csharp_space_after_semicolon_in_for_statement = true | ||
csharp_space_before_semicolon_in_for_statement = false | ||
csharp_space_between_empty_square_brackets = false | ||
csharp_space_before_open_square_brackets = false | ||
csharp_space_between_method_declaration_name_and_open_parenthesis = false | ||
|
||
## Wrapping options | ||
|
||
csharp_preserve_single_line_statements = false | ||
csharp_preserve_single_line_blocks = true | ||
|
||
|
||
# Naming rules ------------------------------------------------------------------------------------ | ||
# https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-naming-conventions?view=vs-2019 | ||
|
||
## Private fields | ||
|
||
dotnet_naming_rule.camel_case_for_private_fields.severity = warning | ||
dotnet_naming_rule.camel_case_for_private_fields.symbols = private_fields_symbols | ||
dotnet_naming_rule.camel_case_for_private_fields.style = private_fields_style | ||
|
||
dotnet_naming_symbols.private_fields_symbols.applicable_kinds = field | ||
dotnet_naming_symbols.private_fields_symbols.applicable_accessibilities = private | ||
dotnet_naming_style.private_fields_style.required_prefix = _ | ||
dotnet_naming_style.private_fields_style.capitalization = camel_case | ||
|
||
## Async methods | ||
|
||
dotnet_naming_rule.async_method_name.severity = suggestion | ||
dotnet_naming_rule.async_method_name.symbols = async_method_name_symbols | ||
dotnet_naming_rule.async_method_name.style = async_method_name_style | ||
|
||
dotnet_naming_symbols.async_method_name_symbols.applicable_kinds = method,delegate | ||
dotnet_naming_symbols.async_method_name_symbols.applicable_accessibilities = * | ||
dotnet_naming_symbols.async_method_name_symbols.required_modifiers = async | ||
|
||
dotnet_naming_style.async_method_name_style.required_suffix = Async | ||
dotnet_naming_style.async_method_name_style.capitalization = pascal_case | ||
|
||
## Async local functions | ||
|
||
dotnet_naming_rule.async_local_function_name.severity = warning | ||
dotnet_naming_rule.async_local_function_name.symbols = async_local_function_name_symbols | ||
dotnet_naming_rule.async_local_function_name.style = async_local_function_name_style | ||
|
||
dotnet_naming_symbols.async_local_function_name_symbols.applicable_kinds = local_function | ||
dotnet_naming_symbols.async_local_function_name_symbols.applicable_accessibilities = * | ||
dotnet_naming_symbols.async_local_function_name_symbols.required_modifiers = async | ||
|
||
dotnet_naming_style.async_local_function_name_style.required_suffix = Async | ||
dotnet_naming_style.async_local_function_name_style.capitalization = camel_case | ||
|
||
## Sync local functions | ||
|
||
dotnet_naming_rule.sync_local_function_name.severity = warning | ||
dotnet_naming_rule.sync_local_function_name.symbols = sync_local_function_name_symbols | ||
dotnet_naming_rule.sync_local_function_name.style = sync_local_function_name_style | ||
|
||
dotnet_naming_symbols.sync_local_function_name_symbols.applicable_kinds = local_function | ||
dotnet_naming_symbols.sync_local_function_name_symbols.applicable_accessibilities = * | ||
|
||
dotnet_naming_style.sync_local_function_name_style.capitalization = camel_case | ||
|
||
## Internal data | ||
|
||
dotnet_naming_rule.pascal_case_for_internal_data.severity = suggestion | ||
dotnet_naming_rule.pascal_case_for_internal_data.symbols = internal_data_symbols | ||
dotnet_naming_rule.pascal_case_for_internal_data.style = internal_data_style | ||
|
||
dotnet_naming_symbols.internal_data_symbols.applicable_kinds = field, property | ||
dotnet_naming_symbols.internal_data_symbols.applicable_accessibilities = internal | ||
dotnet_naming_style.internal_data_style.capitalization = pascal_case | ||
|
||
|
||
# Analyzers ---------------------------------------------------------------------- | ||
|
||
dotnet_diagnostic.ca1032.severity = none # Default exception constructors. | ||
dotnet_diagnostic.ca1062.severity = none # Validate arguments of public methods. | ||
dotnet_diagnostic.ca1303.severity = none # Do not pass literals as localized parameters. | ||
dotnet_diagnostic.ca1308.severity = none # Normalize strings to uppercase. | ||
dotnet_diagnostic.ca1707.severity = none # Identifiers should not contain underscores. | ||
dotnet_diagnostic.ca1710.severity = none # Name of type must end with 'Collection'. | ||
dotnet_diagnostic.ca1716.severity = none # Identifiers should not match keywords. | ||
dotnet_diagnostic.ca1724.severity = none # Type names should not match namespaces. | ||
dotnet_diagnostic.ca1812.severity = none # Class is an internal class that is apparently never instantiated. | ||
dotnet_diagnostic.ca2007.severity = none # Consider calling ConfigureAwait on the awaited task. | ||
dotnet_diagnostic.ca2016.severity = warning # Consider calling ConfigureAwait on the awaited task. | ||
dotnet_diagnostic.ca5377.severity = none # Use Container Level Access Policy. | ||
dotnet_diagnostic.ca1805.severity = none # Do not initialize unnecessarily. | ||
dotnet_diagnostic.cs8509.severity = error # The switch expression does not handle all possible inputs. | ||
dotnet_diagnostic.cs8524.severity = none # The switch expression does not handle some values of its input type. | ||
|
||
|
||
# Visual Studio - Analyzer settings --------------------------------------------------------- | ||
|
||
dotnet_diagnostic.ide0022.severity = none # Use expression body for methods | ||
dotnet_diagnostic.ide0052.severity = warning # Remove unused members | ||
# Rider/ReShaper - Inspections settings ----------------------------------------------------- | ||
|
||
resharper_csharp_max_line_length = 180 | ||
resharper_c_sharp_warnings_cs8509_highlighting = none | ||
resharper_wrap_object_and_collection_initializer_style = chop_always | ||
resharper_csharp_wrap_after_declaration_lpar = true | ||
resharper_inconsistent_naming_highlighting = none | ||
|
||
# Solution-specific settings/overrides ------------------------------------------------------ | ||
|
||
## TBD | ||
|
||
|
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,131 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
tags: | ||
- v* | ||
paths-ignore: | ||
- '*.md' | ||
- 'docs/**' | ||
- '.github/workflows/purge-packages.yml' | ||
pull_request: | ||
paths-ignore: | ||
- '*.md' | ||
- 'docs/**' | ||
- '.github/workflows/purge-packages.yml' | ||
|
||
jobs: | ||
init: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
version: ${{ steps.resolve-version.outputs.version }} | ||
publish-nuget-org: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }} | ||
publish-github: ${{ github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/v') }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Install dotnet-gitversion | ||
run: | | ||
echo ":/github/home/.dotnet/tools" >> $GITHUB_PATH | ||
dotnet tool install -g GitVersion.Tool --version "5.12.0" --ignore-failed-sources | ||
shell: bash | ||
- name: Resolve Version | ||
id: resolve-version | ||
shell: pwsh | ||
working-directory: ./ | ||
run: | | ||
$rawVersion = dotnet-gitversion | ConvertFrom-Json | ||
Write-Output $rawVersion | ||
$semVer = $rawVersion.SemVer | ||
Write-Output "Resolved version $semVer" | ||
Write-Output "version=$semVer" >> $env:GITHUB_OUTPUT | ||
Write-Output "Version = $semVer" >> $env:GITHUB_STEP_SUMMARY | ||
build: | ||
runs-on: ubuntu-latest | ||
needs: init | ||
env: | ||
Configuration: Release | ||
TreatWarningsAsErrors: true | ||
Version: ${{ needs.init.outputs.version }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Restore | ||
run: dotnet restore | ||
- name: Check Format | ||
run: dotnet format --no-restore --verify-no-changes | ||
- name: Build | ||
run: dotnet build --no-restore | ||
- name: Test | ||
run: dotnet test --no-restore | ||
working-directory: ./tests/Tests | ||
- name: Pack | ||
run: dotnet pack --no-build -o nugets/ | ||
- name: Validate NuGets | ||
run: | | ||
echo ':/github/home/.dotnet/tools' >> $env:GITHUB_PATH | ||
dotnet tool install -g dotnet-validate --version '0.0.1-preview.304' --ignore-failed-sources | ||
Get-ChildItem ./nugets -Filter '*.nupkg' | ForEach-Object { dotnet-validate package local $_ } | ||
shell: pwsh | ||
- name: Upload Nugets as Artifacts | ||
uses: actions/upload-artifact@v4 | ||
if: ${{ needs.init.outputs.publish-nuget-org == 'true' || needs.init.outputs.publish-github == 'true'}} | ||
with: | ||
name: nugets | ||
path: nugets | ||
|
||
test-with-azure-infra: | ||
runs-on: ubuntu-latest | ||
environment: azure | ||
permissions: | ||
contents: read | ||
id-token: write | ||
env: | ||
Configuration: Release | ||
TreatWarningsAsErrors: true | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: azure/login@v2 | ||
with: | ||
tenant-id: ${{ secrets.AZURE_TENANT_ID }} | ||
client-id: ${{ secrets.AZURE_CLIENT_ID }} | ||
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | ||
- run: dotnet test | ||
env: | ||
SPOTFLOW_USE_AZURE: true | ||
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | ||
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | ||
AZURE_RESOURCE_GROUP_NAME: ${{ secrets.AZURE_RESOURCE_GROUP_NAME }} | ||
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }} | ||
AZURE_SERVICE_BUS_NAMESPACE_NAME: ${{ secrets.AZURE_SERVICE_BUS_NAMESPACE_NAME }} | ||
AZURE_KEY_VAULT_NAME: ${{ secrets.AZURE_KEY_VAULT_NAME }} | ||
|
||
publish-nuget-org: | ||
runs-on: ubuntu-latest | ||
needs: [init, build, test-with-azure-infra] | ||
if: ${{ needs.init.outputs.publish-nuget-org == 'true' }} | ||
environment: nuget-org | ||
steps: | ||
- name: Download Nugets | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: nugets | ||
- name: Push Nugets | ||
run: dotnet nuget push '*.nupkg' --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json | ||
|
||
publish-github: | ||
runs-on: ubuntu-latest | ||
needs: [init, build, test-with-azure-infra] | ||
permissions: | ||
packages: write | ||
if: ${{ needs.init.outputs.publish-github == 'true' }} | ||
steps: | ||
- name: Download Nugets | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: nugets | ||
- name: Push Nugets | ||
run: dotnet nuget push '*.nupkg' --api-key ${{ secrets.GITHUB_TOKEN }} --source https://nuget.pkg.github.com/spotflow-io/index.json --skip-duplicate |
Oops, something went wrong.