Apply suggestions from code review #44389
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
name: 🧹 Code Layout | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- master | |
- release-** | |
- queued_ltr_backports | |
pull_request: | |
permissions: | |
contents: read | |
env: | |
DOXYGEN_VERSION: 1.9.8 | |
jobs: | |
documentation_checks: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Install requirements | |
run: | | |
wget https://www.doxygen.nl/files/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz | |
tar -xzf doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz | |
python -m pip install --upgrade pip | |
pip install autopep8 nose2 mock termcolor | |
- name: Make | |
run: | | |
mkdir build | |
cd build | |
cmake -DUSE_CCACHE=OFF -DWITH_CORE=OFF -DWITH_APIDOC=ON -DWITH_ASTYLE=ON -DENABLE_TESTS=ON \ | |
-DWITH_DOT=NO -DWERROR=ON -DDOXYGEN_EXECUTABLE=../doxygen-${DOXYGEN_VERSION}/bin/doxygen .. | |
make -j3 apidoc | |
- name: Run Tests | |
run: cd build && ctest -V -R PyQgsDocCoverage | |
license_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Requirements | |
run: | | |
sudo apt install -y \ | |
cpanminus | |
cpanm --notest App::Licensecheck | |
- name: Run License Check | |
run: ./tests/code_layout/test_licenses.sh | |
shell_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Requirements | |
run: | | |
sudo apt install -y \ | |
shellcheck | |
- name: Run Shellcheck | |
run: ./tests/code_layout/test_shellcheck.sh | |
banned_keywords_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run Banned Keywords Test | |
run: ./tests/code_layout/test_banned_keywords.sh | |
class_name_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run class naming conventions check | |
run: ./tests/code_layout/test_class_names.sh | |
def_window_title_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Def Window Title Test | |
run: ./tests/code_layout/test_defwindowtitle.sh | |
qgsscrollarea_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run QgsScrollArea check | |
run: ./tests/code_layout/test_qgsscrollarea.sh | |
qvariant_no_brace_init: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: No brace initialization of QVariant variables | |
run: ./tests/code_layout/test_qvariant_no_brace_init.sh | |
qt_module_wide_imports: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: No module-wide imports of Qt modules | |
run: ./tests/code_layout/test_qt_imports.sh | |
doxygen_layout_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Requirements | |
run: | | |
sudo apt install -y \ | |
expect \ | |
silversearcher-ag | |
- name: Doxygen Layout Test | |
run: ./tests/code_layout/test_doxygen_layout.sh | |
indentation_check: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 100 | |
- name: Install Requirements | |
run: | | |
sudo apt install -y \ | |
astyle \ | |
python3-autopep8 \ | |
flip | |
- name: Indentation Test | |
run: ./scripts/verify_indentation.sh HEAD~1 | |
spell_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Requirements | |
run: | | |
sudo apt install -y \ | |
expect \ | |
silversearcher-ag | |
- name: Retrieve changed files | |
uses: tj-actions/changed-files@v45 | |
id: changed_files | |
with: | |
separator: " " | |
- name: Spell Test | |
if: steps.changed_files.outputs.any_changed == 'true' | |
env: | |
ALL_CHANGED_FILES: ${{ steps.changed_files.outputs.all_changed_files }} | |
run: echo "$ALL_CHANGED_FILES" | ./scripts/spell_check/check_spelling.sh | |
sip_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install Requirements | |
run: | | |
sudo apt-get update | |
sudo apt install -y \ | |
cpanminus \ | |
libyaml-tiny-perl \ | |
libio-socket-ssl-perl \ | |
libhttp-date-perl \ | |
libgetopt-long-descriptive-perl \ | |
libmoo-perl \ | |
libnamespace-clean-perl \ | |
libpath-tiny-perl \ | |
libpod-constants-perl \ | |
libscalar-list-utils-perl \ | |
libsort-key-perl \ | |
libstrictures-perl \ | |
libstring-escape-perl \ | |
libtry-tiny-perl \ | |
expect | |
python -m pip install --upgrade pip | |
pip install autopep8 nose2 mock termcolor pyyaml | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Sip Checks | |
run: ./tests/code_layout/sipify/test_sipify.sh | |
- name: Sip Include Test | |
run: ./tests/code_layout/sipify/test_sip_include.sh | |
- name: Sip Files Up To Date | |
run: ./tests/code_layout/sipify/test_sipfiles.sh | |
cppcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Requirements | |
run: | | |
sudo apt install -y cppcheck | |
- name: Run cppcheck test | |
run: ./scripts/cppcheck.sh | |
moc_check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Run Check | |
run: python3 scripts/includemocs.py src --dry-run |