ktlint 기준 1.0.1 버전 사용 시 ktlint 적용 방법
name: ktlint
on:
pull_request:
branches:
- dev
jobs:
ktlint:
name: Check Code Quality
runs-on: ubuntu-latest
steps:
- name: Clone repo
uses: actions/checkout@master
with:
fetch-depth: 1
- name: ktlint
uses: ScaCap/action-ktlint@master
with:
github_token: ${{ secrets.KTLINT_REVIEW_DOG_GITHUB_TOKEN }}
reporter: github-pr-check # Change reporter
.editorconfig
파일 설정root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
max_line_length = 250
trim_trailing_whitespace = true
[{*.kts,*.kt}]
ij_kotlin_name_count_to_use_star_import = unset
ij_kotlin_name_count_to_use_star_import_for_members = unset
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ij_kotlin_imports_layout=*,java.**,javax.**,kotlin.**,^ #인텔리J 기준 기본 import
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
import-ordering
항목을 자꾸 통과못해서 diabled 시킬 수 있는 방법을 찾다 결국 찾지 못했는데, import optimizing(⌃
⌥
O
)하게 되면 .editorconfig
파일에 ij_kotlin_imports_layout
항목에 설정된 순서대로 자동으로 정렬해주므로 한번만 지정해주면 된다.disabled_rules = no-wildcard-imports, import-ordering, comment-spacing
항목을 쓰는 것으로 되어있는데, 0.49버젼부터 deprecated 되었음. disabled_rule 옵션 사용하고 ktlint 검사 시 아래와 같은 경고를 출력함.WARN com.pinterest.ktlint.rule.engine.internal.RuleExecutionContext - Editorconfig property 'disabled_rules' is obsolete and is not used by KtLint starting from version 0.49. Remove the property from all '.editorconfig' files.
(mac os brew 기준)
brew install ktlint
ktlint "src/**/*.kt"
IDE의 ktlint와 github action의 ktlint 버젼을 일치시켜야 함.
ktlint --version
github action에선 해당 스탭에 가보면 아래와 같이 확인 가능 - 룰이나 버젼이 자동으로 업데이트 되는 최신 버전의 rule 정보를 주입받을 수 있으므로 갑자기 검출이 될 수도 있다.
commit 전에 검사하는 방법을 찾아보자.