-
Notifications
You must be signed in to change notification settings - Fork 0
6. 원티드 프로젝트에 Swift Style Guide를 적용하는 방법
- 규칙 위반 자동 수정
- 자동으로 수정할 수 없는 규칙 위반은 워닝이나 에러로 알림
- 라이브러리로 체크할 수 없는 규칙은 코드 리뷰에서 수동으로 체크
- CI툴이 PR단위로 체크
-
Xcode Build Phrase에 SwiftFormat으로 자동 수정하는 스크립트 추가
-
빌드 시 자동 수정
${PODS_ROOT}/SwiftFormat/CommandLineTool/swiftformat --config .wanted.swiftformat $SRCROOT
-
SwiftLint에서 자동으로 수정하지 못하는 규칙을 상당부분 자동 수정해줍니다! SwiftLint와 겹치는 규칙도 있습니다.
-
-
Xcode Build Phrase에 SwiftLint로 린팅하는 스크립트를 추가
-
빌드 시 린팅하여 워닝 또는 에러를 발생
-
자동 수정 되지 않는 규칙만 체크합니다.
-
규칙 위반 코드가 있다면 컴파일이 되지 않도록 --strict 옵션을 적용했습니다.
${PODS_ROOT}/SwiftLint/swiftlint --strict --config .swiftLint.yml
-
에러메시지 :
Command PhaseScriptExecution failed with a nonzero exit code
-
다른 워닝과 섞여서 발견하기가 어려워서 설정하게 되었습니다.
-
규칙 위반을 수정하기 어렵다면 해당 코드는 규칙에서 제외시키면 됩니다.
-
-
-
커밋할 때마다 SwiftLint가 규칙 위반 코드를 자동 수정
-
git hook을 이용
-
pre-commit 파일은 git으로 버전관리되는 파일이 아니어서 각자의 로컬 저장소에 추가해주어야 합니다.
-
.git/hooks 안에 추가
-
빌드 시간을 조금이라도 줄이기 위해 커밋 시점에 실행합니다.
-
커밋하고 나면 자동 수정된 코드가 있는지 확인하여 추가 커밋을 합니다.
-
-
PR이 올라오면 CI툴이 swiftlint를 수행하여 규칙을 위반한 경우 PR에 리뷰를 남깁니다.
자동 수정 및 코드 리뷰에서 수동 체크는 우선 적용하였고 빌드 시 린팅은 기존 린트 워닝과 에러가 모두 수정된 v4.6.8 부터 적용되었습니다.
CI툴이 PR에서 체크는 v5.2.0부터 적용되었습니다.