Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SNOW-921048]Add linter action #892

Merged
merged 3 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
sfc-gh-erojaslizano marked this conversation as resolved.
Show resolved Hide resolved
- name: Run linters
uses: wearerequired/lint-action@v2
with:
dotnet_format: true
continue_on_error: true
github_token: ${{ secrets.GITHUB_TOKEN }}
sfc-gh-erojaslizano marked this conversation as resolved.
Show resolved Hide resolved
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
Loading