name: PBS support on: pull_request: paths: - '.github/workflows/test-pbs.yml' - 'AppImage/scripts/*pbs*.py' - 'AppImage/scripts/tests/test_pbs.py' - 'AppImage/scripts/tests/test_pbs_i18n.py' - 'AppImage/scripts/health_monitor.py' - 'AppImage/scripts/auth_manager.py' - 'AppImage/scripts/build_appimage.sh' - 'AppImage/components/pbs-*.tsx' - 'AppImage/components/proxmox-dashboard.tsx' - 'AppImage/tests/pbs-navigation.cjs' - 'scripts/global/proxmox_platform.py' - 'scripts/global/platform-functions.sh' - 'scripts/global/repository-functions.sh' - 'scripts/menus/pbs_menu.sh' - 'scripts/utilities/pbs_update.sh' - 'scripts/global/update-pbs.sh' - 'scripts/menus/menu_post_install.sh' - 'scripts/post_install/*.sh' push: branches: [main, develop] paths: - 'AppImage/scripts/*pbs*.py' - 'scripts/global/proxmox_platform.py' - '.github/workflows/test-pbs.yml' workflow_dispatch: permissions: contents: read jobs: pbs: runs-on: ubuntu-latest timeout-minutes: 10 strategy: fail-fast: false matrix: python: ['3.11', '3.13'] steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Install test dependencies run: python -m pip install Flask PyJWT cryptography pyotp segno - name: Platform, real TLS, APIs, health and AppImage packaging run: | python -B -m unittest discover -s AppImage/scripts/tests -p test_pbs.py -v python -B -m unittest discover -s AppImage/scripts/tests -p test_pbs_i18n.py -v python -B -m unittest discover -s AppImage/scripts/tests -p test_auth_manager_ssl_reload.py -v for script in scripts/global/platform-functions.sh scripts/global/repository-functions.sh scripts/menus/pbs_menu.sh scripts/utilities/pbs_update.sh scripts/menus/main_menu.sh scripts/post_install/auto_post_install.sh scripts/post_install/customizable_post_install.sh scripts/post_install/uninstall-tools.sh scripts/global/update-pbs.sh scripts/menus/menu_post_install.sh; do bash -n "$script" done - uses: actions/setup-node@v6 if: matrix.python == '3.11' with: node-version: '22.14.0' - name: Dashboard platform routing if: matrix.python == '3.11' run: | npm ci --prefix .github/ci/offline-node --legacy-peer-deps --ignore-scripts --no-audit --no-fund NODE_PATH="$PWD/.github/ci/offline-node/node_modules" node AppImage/tests/pbs-navigation.cjs