diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea98e8778..fbd554e86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,12 +56,22 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Install SwiftLint / SwiftFormat + run: | + brew install swiftlint swiftformat + - name: Show toolchain run: | sw_vers xcodebuild -version swift --version + - name: SwiftLint + run: swiftlint --config .swiftlint.yml + + - name: SwiftFormat (lint mode) + run: swiftformat --lint apps/macos/Sources --config .swiftformat + - name: Swift build (release) run: swift build --package-path apps/macos --configuration release diff --git a/.swiftformat b/.swiftformat new file mode 100644 index 000000000..b8bde6d4b --- /dev/null +++ b/.swiftformat @@ -0,0 +1,12 @@ +--swiftversion 5.10 +--indent 4 +--decimalgrouping none +--hexgrouping none +--wraparguments after-first +--wrapcollections before-first +--trimwhitespace always +--stripunusedargs closure-only +--stripunusedimports +--self init-only +--disable redundantSelf +--enable wrapMultilineStatementBraces diff --git a/.swiftlint.yml b/.swiftlint.yml new file mode 100644 index 000000000..81008484f --- /dev/null +++ b/.swiftlint.yml @@ -0,0 +1,20 @@ +included: + - apps/macos/Sources + +excluded: + - apps/macos/Tests + +disabled_rules: + - trailing_whitespace + - todo + - line_length + - identifier_name + - type_body_length + - file_length + +opt_in_rules: + - explicit_self + - implicit_return + - vertical_whitespace_between_cases + +reporter: "xcode"