변경된 파일에서만 mypy를 실행하는 GitHub 작업
7203 단어 githubopensourcepython
그래서 구글링을 좀 해본 결과 워크플로에서 바로 사용할 수 있는 매우 유용한 액션을 발견했습니다.
tj-액션 / 변경된 파일
:octocat: 모든(추가, 복사, 수정, 삭제, 이름 변경, 유형 변경, 병합 해제, 알 수 없음) 파일 및 디렉토리를 검색하는 Github 작업입니다.
변경된 파일
대상 브랜치(
pull_request*
기반 이벤트) 또는 마지막 원격 커밋(push
기반 이벤트)에 상대적인 모든 변경된 파일 및 디렉토리를 검색하여 프로젝트 루트에서 변경된 모든 파일 및 디렉토리에 대한 절대 경로를 반환합니다.특징
GitHub-hosted runners 서포트
GitHub Enterprise Server 지원합니다.
self-hosted runners 지원합니다.
View on GitHub
그리고 필터 전용
*.py
파일과 같은 일부 옵션을 사용자 정의한 후 변경된 파일을 인수로 전달하여 실행mypy
할 수 있었습니다.전체 리포지토리를 스캔하지 않고 일부 파일만 스캔하기 때문에
--ignore-missing-imports
에 mypy
인수를 포함해야 한다는 점을 언급할 가치가 있습니다. 물론 목표는 그것들을 모두 확인하는 것입니다. 그러나 준비되기 전에 많은 수정이 이루어져야 합니다.이 솔루션은 기존 파일이 조금씩 수정되는 레거시 프로젝트에서 새 파일에 대한 정적 유형 검사를 포함하려는 경우 매우 유용할 수 있습니다.
name: "mypy check"
on: [pull_request]
jobs:
static-type-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v3
with:
python-version: '3.x'
- run: pip install mypy # you can pin your preferred version
- name: Get Python changed files
id: changed-py-files
uses: tj-actions/changed-files@v23
with:
files: |
*.py
**/*.py
- name: Run if any of the listed files above is changed
if: steps.changed-py-files.outputs.any_changed == 'true'
run: mypy ${{ steps.changed-py-files.outputs.all_changed_files }} --ignore-missing-imports
행복한 유형 안전!
Reference
이 문제에 관하여(변경된 파일에서만 mypy를 실행하는 GitHub 작업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/po5i/github-action-to-run-mypy-on-changed-files-only-3iip텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)