mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2024-11-21 22:56:38 +01:00
Use a Composite Action for Testing Type Completeness (#4367)
This commit is contained in:
parent
06f1da576e
commit
f737702544
1 changed files with 4 additions and 61 deletions
65
.github/workflows/type_completeness.yml
vendored
65
.github/workflows/type_completeness.yml
vendored
|
@ -4,6 +4,7 @@ on:
|
||||||
paths:
|
paths:
|
||||||
- telegram/**
|
- telegram/**
|
||||||
- pyproject.toml
|
- pyproject.toml
|
||||||
|
- .github/workflows/type_completeness.yml
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
@ -13,66 +14,8 @@ jobs:
|
||||||
name: test-type-completeness
|
name: test-type-completeness
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: Bibo-Joshi/pyright-type-completeness@1.0.0
|
||||||
- run: git fetch --depth=1 # https://github.com/actions/checkout/issues/329#issuecomment-674881489
|
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
with:
|
||||||
|
package-name: telegram
|
||||||
python-version: 3.12
|
python-version: 3.12
|
||||||
cache: 'pip'
|
pyright-version: ~=1.1.367
|
||||||
cache-dependency-path: '**/requirements*.txt'
|
|
||||||
- name: Install Pyright
|
|
||||||
run: |
|
|
||||||
python -W ignore -m pip install pyright~=1.1.367
|
|
||||||
- name: Get PR Completeness
|
|
||||||
# Must run before base completeness, as base completeness will checkout the base branch
|
|
||||||
# And we can't go back to the PR branch after that in case the PR is coming from a fork
|
|
||||||
run: |
|
|
||||||
pip install . -U
|
|
||||||
pyright --verifytypes telegram --ignoreexternal --outputjson > pr.json || true
|
|
||||||
pyright --verifytypes telegram --ignoreexternal > pr.readable || true
|
|
||||||
- name: Get Base Completeness
|
|
||||||
run: |
|
|
||||||
git checkout ${{ github.base_ref }}
|
|
||||||
pip install . -U
|
|
||||||
pyright --verifytypes telegram --ignoreexternal --outputjson > base.json || true
|
|
||||||
- name: Compare Completeness
|
|
||||||
uses: jannekem/run-python-script-action@v1
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
import json
|
|
||||||
import os
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
base = float(
|
|
||||||
json.load(open("base.json", "rb"))["typeCompleteness"]["completenessScore"]
|
|
||||||
)
|
|
||||||
pr = float(
|
|
||||||
json.load(open("pr.json", "rb"))["typeCompleteness"]["completenessScore"]
|
|
||||||
)
|
|
||||||
base_text = f"This PR changes type completeness from {round(base, 3)} to {round(pr, 3)}."
|
|
||||||
|
|
||||||
if base == 0:
|
|
||||||
text = f"Something is broken in the workflow. Reported type completeness is 0. 💥"
|
|
||||||
set_summary(text)
|
|
||||||
print(Path("pr.readable").read_text(encoding="utf-8"))
|
|
||||||
error(text)
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
if pr < (base - 0.001):
|
|
||||||
text = f"{base_text} ❌"
|
|
||||||
set_summary(text)
|
|
||||||
print(Path("pr.readable").read_text(encoding="utf-8"))
|
|
||||||
error(text)
|
|
||||||
exit(1)
|
|
||||||
elif pr > (base + 0.001):
|
|
||||||
text = f"{base_text} ✨"
|
|
||||||
set_summary(text)
|
|
||||||
if pr < 1:
|
|
||||||
print(Path("pr.readable").read_text(encoding="utf-8"))
|
|
||||||
print(text)
|
|
||||||
else:
|
|
||||||
text = f"{base_text} This is less than 0.1 percentage points. ✅"
|
|
||||||
set_summary(text)
|
|
||||||
print(Path("pr.readable").read_text(encoding="utf-8"))
|
|
||||||
print(text)
|
|
||||||
|
|
Loading…
Reference in a new issue