Skip to content

Commit

Permalink
[SNOW-921048]Add linter action (#892)
Browse files Browse the repository at this point in the history
Add linter action
- Add linter.yml workflow
- Add .EditorConfig with default rules
- Add .DS_Store to gitignore
  • Loading branch information
sfc-gh-erojaslizano authored Apr 16, 2024
1 parent b703f93 commit 46e496a
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 1 deletion.
61 changes: 61 additions & 0 deletions .EditorConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
root = true
# All files
[*.*]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
max_line_length=150

# Interfaces should start with I and PascalCase
dotnet_naming_rule.interfaces_begin_with_I.severity = warning
dotnet_naming_rule.interfaces_begin_with_I.symbols = interfaces
dotnet_naming_rule.interfaces_begin_with_I.style = prefix_and_pascal_case
dotnet_naming_rule.interfaces_begin_with_I.required_prefix = I
dotnet_naming_symbols.interfaces.applicable_kinds = interface
dotnet_diagnostic.interfaces_begin_with_I.severity = warning
dotnet_diagnostic.interfaces_begin_with_I.enabled = true

# Static fields should start with _s
dotnet_naming_rule.static_fields_begin_with_s.severity = warning
dotnet_naming_rule.static_fields_begin_with_s.symbols = static_fields
dotnet_naming_rule.static_fields_begin_with_s.style = custom
dotnet_naming_rule.static_fields_begin_with_s.custom_recommended_prefix = _r
dotnet_naming_rule.static_fields_begin_with_s.required_prefix = _r
dotnet_naming_rule.static_fields_begin_with_s.capitalization = camel_case
dotnet_naming_symbols.static_fields.applicable_kinds = field
dotnet_naming_symbols.static_fields.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.static_fields.required_modifiers = static
dotnet_diagnostic.static_fields_begin_with_s.severity = warning
dotnet_diagnostic.static_fields_begin_with_s.enabled = true

# Enforce use of Pascal case in enums, classes, const and methods
dotnet_naming_rule.enforce_pascal_case.severity = suggestion
dotnet_naming_rule.enforce_pascal_case.symbols = methods, enums, consts, public_methods, public_classes
dotnet_naming_rule.enforce_pascal_case.style = pascal_case
dotnet_naming_symbols.methods.applicable_kinds = method
dotnet_naming_symbols.enums.applicable_kinds = enum
dotnet_naming_symbols.consts.applicable_kinds = field
dotnet_naming_symbols.consts.applicable_modifiers = const
dotnet_naming_symbols.public_methods.applicable_kinds = method
dotnet_naming_symbols.public_methods.applicable_accessibilities = public
dotnet_naming_symbols.public_classes.applicable_kinds = class
dotnet_naming_symbols.public_classes.applicable_accessibilities = public
dotnet_diagnostic.enforce_pascal_case.severity = suggestion
dotnet_diagnostic.enforce_pascal_case.enabled = true

# private and internal members should start with underscore
dotnet_naming_rule.private_and_internal_members_start_with_underscore.severity = warning
dotnet_naming_rule.private_and_internal_members_start_with_underscore.symbols = private_fields, internal_fields, private_properties, internal_properties, private_methods, internal_methods
dotnet_naming_rule.private_and_internal_members_start_with_underscore.style = underscore_prefix
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.internal_fields.applicable_kinds = field
dotnet_naming_symbols.private_properties.applicable_kinds = property
dotnet_naming_symbols.internal_properties.applicable_kinds = property
dotnet_naming_symbols.private_methods.applicable_kinds = method
dotnet_naming_symbols.internal_methods.applicable_kinds = method
dotnet_naming_symbols.private_methods.applicable_accessibilities = private
dotnet_naming_symbols.internal_methods.applicable_accessibilities = internal
dotnet_diagnostic.private_and_internal_members_start_with_underscore.severity = warning
dotnet_diagnostic.private_and_internal_members_start_with_underscore.enabled = true
43 changes: 43 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Code standards check

# Triggers the workflow on pull request events but only for the master branch
on:
pull_request:
branches: [ master ]
workflow_dispatch:
inputs:
logLevel:
default: warning
description: "Log level"
required: true
tags:
description: "Linter"
required: false

concurrency:
# older builds for the same pull request number or branch should be cancelled
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
DOTNET_VERSION: 6.0
DOTNET_LEGACY_VERSION: 4.7.1

jobs:
run-linter:
name: Run linter
runs-on: windows-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Set up .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: "6.0.x"
dotnet-quality: 'ga'
- name: Run linters
uses: wearerequired/lint-action@v2
with:
dotnet_format: true
continue_on_error: true
check_name: ${linter} run
3 changes: 2 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ jobs:
dotnet: ['net6.0', 'net472', 'net471']
cloud_env: ['AZURE', 'GCP', 'AWS']
steps:
- uses: actions/checkout@v3
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Dotnet
uses: actions/setup-dotnet@v3
with:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -309,3 +309,6 @@ whitesource/
Snowflake.Data.Tests/macos_*_performance.csv
Snowflake.Data.Tests/windows_*_performance.csv
Snowflake.Data.Tests/unix_*_performance.csv

# Ignore Mac files
**/.DS_Store

0 comments on commit 46e496a

Please sign in to comment.