name: 🧹 Code Layout on: push: branches: - master - release-** - queued_ltr_backports pull_request: env: DOXYGEN_VERSION: 1.9.6 jobs: documentation_checks: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Python 3.10 uses: actions/setup-python@v4 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@v3 - 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@v3 - 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@v3 - name: Run Banned Keywords Test run: ./tests/code_layout/test_banned_keywords.sh def_window_title_check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Def Window Title Test run: ./tests/code_layout/test_defwindowtitle.sh qgsscrollarea_check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - 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@v3 - 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@v3 - 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@v3 - 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@v3 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@v3 - name: Install Requirements run: | sudo apt install -y \ expect \ silversearcher-ag - uses: trilom/file-changes-action@v1.2.4 id: changed_files with: output: ' ' githubToken: ${{ secrets.GITHUB_TOKEN }} - name: Spell Test run: ./scripts/spell_check/check_spelling.sh -r ${{ steps.changed_files.outputs.files_modified }} ${{ steps.changed_files.outputs.files_added }} sip_check: runs-on: ubuntu-latest steps: - name: Set up Python 3.7 uses: actions/setup-python@v4 with: python-version: 3.7 - name: Install Requirements run: | 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 - name: Checkout uses: actions/checkout@v3 - 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_18_04: runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v3 - name: Install Requirements run: | sudo apt install -y cppcheck - name: Run cppcheck test run: ./scripts/cppcheck.sh