솝트 30기 과제를 하면서 뭔가 혼자 관리하는 레포니까 내 코드를 체크하는 기능이 있었으면 좋겠다고 생각했다. 그래서 SwiftLint 라이브러리를 추가했고, 지난달에 GDSC에서 스피커세션으로 발표했던 Gihub Action을 이용해보기로 했다!!!
발표 포스팅 링크 👀
https://dsc-sookmyung.tistory.com/311?category=922071
https://github.com/norio-nomura/action-swiftlint
이미 마켓플레이스에 SwiftLint를 Github Action으로 사용할 수 있도록 나와있었다.
리드미에 가면 사용법이 나와있다.
내 레포의 구조를 보면 Repository가 바로 프로젝트인 구조가 아니라 Repository안의 내부 폴더가 프로젝트인 것을 볼 수 있다. 그래서 Lint 규칙을 설정할 수 있는 swiftLint.yml 파일도 폴더 하나 들어가야 나온다.
그래서 인지 적용이 잘 안되었다.. (린트를 적용하지 않을 경로가 인식이 잘 안된다고 느꼈다.) 내가 RxSwift를 넣어놨는데, 액션으로 린트를 체크할 때마다 RxSwift 내부 파일까지 체크를 해서.. 자꾸 오류가 남
일단 이미 만들어진 Action을 쓰는것을 포기하고.. SwiftLint를 실행시키는 명령어를 찾아봤다.
swiftlint --config 경로
그래서 워크플로우 파일을 다음과 같이 바꿨다.
name: SwiftLint
on:
push:
branches: [ main ]
paths:
- '.github/workflows/swiftlint.yml'
- 'Instagram-Clone/.swiftlint.yml'
- 'Instagram-Clone/**/*.swift'
pull_request:
branches: [ main ]
paths:
- '.github/workflows/swiftlint.yml'
- 'Instagram-Clone/.swiftlint.yml'
- 'Instagram-Clone/**/*.swift'
jobs:
SwiftLint:
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- name: Run Swiftlint
run: swiftlint --config Instagram-Clone/.swiftlint.yml
run 부분에 직접 실행할 린트의 경로를 적어주고, 명령어를 실행했음..
그랬더니 잘 실행되었다!!!