Add CI to check all files can be imported #973
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Python package | |
on: | |
push: | |
pull_request: | |
merge_group: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
if [ -f requirements-dev.txt ]; then python -m pip install -r requirements-dev.txt; fi | |
- name: Ensure generate-code.py doesn't throw any error | |
run: | | |
python generate-code.py | |
- name: Update version in linebot/__about__.py | |
run: | | |
VERSION="12.3.0" | |
VERSION=${VERSION#v} | |
sed -i "s/__version__ = '__LINE_BOT_SDK_PYTHON_VERSION__'/__version__ = '$VERSION'/g" linebot/__about__.py | |
cat linebot/__about__.py | |
- name: Test with pytest | |
run: | | |
tox | |
- name: Ensure README.rst builds correctly for PyPI | |
run: | | |
pip install readme-renderer | |
python -m readme_renderer README.rst >/dev/null | |
check-import: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Update version in linebot/__about__.py | |
run: | | |
VERSION="12.3.0" | |
VERSION=${VERSION#v} | |
sed -i "s/__version__ = '__LINE_BOT_SDK_PYTHON_VERSION__'/__version__ = '$VERSION'/g" linebot/__about__.py | |
cat linebot/__about__.py | |
- name: workaround | |
run: | | |
file_path="linebot/v3/messaging/models/text_message_v2.py" | |
old_import="from linebot.v3.messaging.models.dict[str,_substitution_object] import Dict[str, SubstitutionObject]" | |
new_import="from linebot.v3.messaging.models.substitution_object import SubstitutionObject" | |
sed -i.bak "s|$old_import|$new_import|" "$file_path" | |
- name: Install dependencies & lib | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e . | |
- name: Run import check | |
run: python import_check.py |