Mypy의 결과를 GitHub에서 코멘트 해주는 Action을 만들었다
6325 단어 GitHubflake8GitHubActions파이썬mypy
htps : // 기주 b. 코 m / 마르 tp
※ 원래 flake8을 같은 형식으로 실행하는 것이 있었으므로, 그것을 참고로 작성하고 있습니다.
htps : // 기주 b. 코 m / 마르 tp ぁ세 / 아 c 치온 s / f ぁ 케 8- 아 c 치온
실행 결과 이미지:
사용방법
flake8과 함께 사용하는 경우 다음과 같은 yml을 만들어 적절한 위치에 배치합니다.
예를 들어 .github/workflows/lint.yml
에 배치합니다.
name: Lint
on:
push:
paths:
- '*.py'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: 3.8
architecture: x64
- name: Checkout
uses: actions/checkout@v1
- name: Install flake8
run: pip install flake8
- name: Install mypy
run: pip install mypy
- name: Run flake8
uses: suo/flake8-github-action@releases/v1
with:
checkName: 'lint' # NOTE: this needs to be the same as the job name
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ always() }}
- name: Run mypy
uses: sasanquaneuf/mypy-github-action@releases/v1
with:
checkName: 'lint' # NOTE: this needs to be the same as the job name
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ always() }}
이 설정의 경우, *.py에 변경이 있었을 경우에 한해 flake8과 mypy를 실행해, 에러가 있었을 경우에는 코멘트해 줍니다.
병용했을 경우의 코멘트 이미지는 다음과 같습니다.
제작 과정
동기 부여
flake8/mypy를 실행하는 GitHub Action을 찾아 보았는데, flake8에서는 코멘트를 붙여주는 그것 같은 것이 있었기 때문에, mypy에서도 같은 것을 만들기로 했습니다.
리포지토리 만들기
참고로 한 것은
htps : // 기주 b. 코 m / suo / f 8-Gi Teu B-A C Chion # Rea d
하지만 GitHub의 화면 왼쪽 상단에 "generated from actions/typescript-action"이라고 써 있었으므로, 이 템플릿을 바탕으로 리포지토리를 만들었습니다.
dependabot의 PR 병합
템플릿으로 만든 리포지토리입니다만, 갑자기 dependeabot에서 PR가 와 있었으므로, 테스트가 망가지지 않는 것에 대해서는 시험에 병합해 보겠습니다. (이런 가벼운 기분으로 병합해도 좋은가 하는 문제도 있습니다만, 이번에는 아직 아무도 사용하기 시작하지 않았기 때문에, 첫회라고 하는 것으로 시험에 병합해 보았습니다.)
※「Bump eslint-plugin-github from 4.1.1 to 4.3.0」의 i18n의 에러에 대해서는, 일단 ignore 하는 설정을 짜넣었지만, 병합을 잊고 있었으므로 일단 그대로 하고 있습니다.
구현
리포지토리를 clone하면 main.ts가 있으므로 flake8-github-action의 내용을 참고로 main.ts의 내용을 다시 씁니다.
불필요한 코드 삭제
샘플 불필요한 wait.ts와 그 테스트를 제거합니다.
README.md 및 action.yml 재작성
README.md와 action.yml의 내용을 적절한 내용으로 다시 씁니다.
GitHub 화면에서 릴리스(태그) 만들기
위의 내용을 반영하여 GitHub에 푸시하면 GitHub의 리포지토리 화면에 마켓플레이스에 출시할 것인지의 링크가 표시되므로 거기에서 출시를 생성하는 화면으로 이동하여 출시를 생성합니다. .
다른 리포지토리에서 찾아보고 실행할 수 있는지 확인
다른 리포지토리에서 flake8-github-action과 마찬가지로 mypy-github-action을 참조하여 작동하는지 확인합니다.
감상
GitHub Action(s)은 상당히 간단하게 만들 수 있다고 생각했습니다.
상기의 순서에 대해서도, 실제로는 「push한 후에 릴리스의 화면에서의 메세지에 의해 action.yml의 설정을 깨닫는다」라고 하는 일도 있어, 친절한 화면이 되어 있는 것이라고 느꼈습니다.
개인적으로는, 자주 사용하고 있는 Circle CI에 대한 불만은 특별히 없습니다만, GitHub상의 코멘트로서 flake8/mypy의 결과를 간단하게 낼 수 있는 것은, 사람에 따라서는 편리할 것이라고 생각했습니다(flake8/mypy 의 결과는 원래 행수라든지 나오고 있으므로, 조사하려고 하면 간단하게 조사할 수 있는 것이 있습니다만...)
Reference
이 문제에 관하여(Mypy의 결과를 GitHub에서 코멘트 해주는 Action을 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sasanquaneuf/items/d5e1b33f9a8d2d7794fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
name: Lint
on:
push:
paths:
- '*.py'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: 3.8
architecture: x64
- name: Checkout
uses: actions/checkout@v1
- name: Install flake8
run: pip install flake8
- name: Install mypy
run: pip install mypy
- name: Run flake8
uses: suo/flake8-github-action@releases/v1
with:
checkName: 'lint' # NOTE: this needs to be the same as the job name
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ always() }}
- name: Run mypy
uses: sasanquaneuf/mypy-github-action@releases/v1
with:
checkName: 'lint' # NOTE: this needs to be the same as the job name
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ always() }}
동기 부여
flake8/mypy를 실행하는 GitHub Action을 찾아 보았는데, flake8에서는 코멘트를 붙여주는 그것 같은 것이 있었기 때문에, mypy에서도 같은 것을 만들기로 했습니다.
리포지토리 만들기
참고로 한 것은
htps : // 기주 b. 코 m / suo / f 8-Gi Teu B-A C Chion # Rea d
하지만 GitHub의 화면 왼쪽 상단에 "generated from actions/typescript-action"이라고 써 있었으므로, 이 템플릿을 바탕으로 리포지토리를 만들었습니다.
dependabot의 PR 병합
템플릿으로 만든 리포지토리입니다만, 갑자기 dependeabot에서 PR가 와 있었으므로, 테스트가 망가지지 않는 것에 대해서는 시험에 병합해 보겠습니다. (이런 가벼운 기분으로 병합해도 좋은가 하는 문제도 있습니다만, 이번에는 아직 아무도 사용하기 시작하지 않았기 때문에, 첫회라고 하는 것으로 시험에 병합해 보았습니다.)
※「Bump eslint-plugin-github from 4.1.1 to 4.3.0」의 i18n의 에러에 대해서는, 일단 ignore 하는 설정을 짜넣었지만, 병합을 잊고 있었으므로 일단 그대로 하고 있습니다.
구현
리포지토리를 clone하면 main.ts가 있으므로 flake8-github-action의 내용을 참고로 main.ts의 내용을 다시 씁니다.
불필요한 코드 삭제
샘플 불필요한 wait.ts와 그 테스트를 제거합니다.
README.md 및 action.yml 재작성
README.md와 action.yml의 내용을 적절한 내용으로 다시 씁니다.
GitHub 화면에서 릴리스(태그) 만들기
위의 내용을 반영하여 GitHub에 푸시하면 GitHub의 리포지토리 화면에 마켓플레이스에 출시할 것인지의 링크가 표시되므로 거기에서 출시를 생성하는 화면으로 이동하여 출시를 생성합니다. .
다른 리포지토리에서 찾아보고 실행할 수 있는지 확인
다른 리포지토리에서 flake8-github-action과 마찬가지로 mypy-github-action을 참조하여 작동하는지 확인합니다.
감상
GitHub Action(s)은 상당히 간단하게 만들 수 있다고 생각했습니다.
상기의 순서에 대해서도, 실제로는 「push한 후에 릴리스의 화면에서의 메세지에 의해 action.yml의 설정을 깨닫는다」라고 하는 일도 있어, 친절한 화면이 되어 있는 것이라고 느꼈습니다.
개인적으로는, 자주 사용하고 있는 Circle CI에 대한 불만은 특별히 없습니다만, GitHub상의 코멘트로서 flake8/mypy의 결과를 간단하게 낼 수 있는 것은, 사람에 따라서는 편리할 것이라고 생각했습니다(flake8/mypy 의 결과는 원래 행수라든지 나오고 있으므로, 조사하려고 하면 간단하게 조사할 수 있는 것이 있습니다만...)
Reference
이 문제에 관하여(Mypy의 결과를 GitHub에서 코멘트 해주는 Action을 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sasanquaneuf/items/d5e1b33f9a8d2d7794fb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Mypy의 결과를 GitHub에서 코멘트 해주는 Action을 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sasanquaneuf/items/d5e1b33f9a8d2d7794fb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)