[bot]: bump apprise from 1.11.0 to 1.12.0 #658
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [master, development] | |
| paths: | |
| - frontend/** | |
| - bazarr/** | |
| - custom_libs/** | |
| - tests/** | |
| - docs/** | |
| - migrations/** | |
| - bazarr.py | |
| - requirements.txt | |
| - dev-requirements.txt | |
| - .github/workflows/ci.yml | |
| pull_request: | |
| branches: [master, development] | |
| permissions: | |
| contents: read | |
| env: | |
| ROOT_DIRECTORY: . | |
| UI_DIRECTORY: ./frontend | |
| SCRIPTS_DIRECTORY: .github/scripts | |
| UI_ARTIFACT_NAME: ui | |
| jobs: | |
| Frontend: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v7 | |
| - name: Cache node_modules | |
| uses: actions/cache@v6 | |
| with: | |
| path: "${{ env.UI_DIRECTORY }}/node_modules" | |
| key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: ${{ runner.os }}-modules- | |
| - name: Setup NodeJS | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: "${{ env.UI_DIRECTORY }}/.nvmrc" | |
| - name: Install dependencies | |
| run: npm install | |
| working-directory: ${{ env.UI_DIRECTORY }} | |
| - name: Check Types | |
| run: npm run check:ts | |
| working-directory: ${{ env.UI_DIRECTORY }} | |
| - name: Check Styles | |
| run: npm run check | |
| working-directory: ${{ env.UI_DIRECTORY }} | |
| - name: Check Format | |
| run: npm run check:fmt | |
| working-directory: ${{ env.UI_DIRECTORY }} | |
| - name: Unit Test (with coverage thresholds) | |
| run: npm run coverage | |
| working-directory: ${{ env.UI_DIRECTORY }} | |
| - name: Build | |
| run: npm run build:ci | |
| working-directory: ${{ env.UI_DIRECTORY }} | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ env.UI_ARTIFACT_NAME }} | |
| path: "${{ env.UI_DIRECTORY }}/build" | |
| Backend: | |
| runs-on: ubuntu-latest | |
| needs: Frontend | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ '3.12', '3.13', '3.14' ] | |
| name: Python ${{ matrix.python-version }} backend | |
| # Postgres service so the native-PG local-id cutover migration test actually | |
| # runs on CI (it skips when no Postgres is reachable) instead of silently | |
| # passing vacuously. | |
| services: | |
| postgres: | |
| image: postgres:16-alpine | |
| env: | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: bazarr_test | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v7 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install UI | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: ${{ env.UI_ARTIFACT_NAME }} | |
| path: "${{ env.UI_DIRECTORY }}/build" | |
| - name: Install ffmpeg | |
| # test_embeddedsubtitles uses real .mkv fixtures that require ffprobe to | |
| # extract stream metadata. Ubuntu runners ship without it. | |
| run: sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends ffmpeg | |
| - name: Install Python dependencies | |
| run: | | |
| pip install -r requirements.txt | |
| # signalrcore over-pins msgpack==1.1.2 (GHSA-6v7p-g79w-8964); install it | |
| # with --no-deps so our msgpack==1.2.1 from requirements.txt wins. | |
| pip install --no-deps signalrcore==1.0.2 | |
| - name: Install dev dependencies | |
| run: pip install -r dev-requirements.txt | |
| - name: Lint with ruff | |
| run: ruff check . | |
| - name: pytest compat subpackage | |
| run: | | |
| pip install pytest pyjwt | |
| pytest tests/compat/ -v --tb=short | |
| - name: pytest dependency, Provider Hub, and Subliminal rebase guards | |
| run: | | |
| pytest \ | |
| tests/bazarr/test_pretty_date.py \ | |
| tests/bazarr/test_dependency_loading.py \ | |
| tests/bazarr/test_signalrcore_compat.py \ | |
| tests/bazarr/test_app_get_providers.py \ | |
| tests/bazarr/test_provider_hub.py \ | |
| tests/bazarr/test_provider_hub_auto_install_optin.py \ | |
| tests/bazarr/test_provider_hub_archive_select.py \ | |
| tests/bazarr/test_provider_hub_worker_timeout.py \ | |
| tests/bazarr/test_arr_instances_schema.py \ | |
| tests/bazarr/test_arr_ownership_columns.py \ | |
| tests/bazarr/test_arr_instance_repository.py \ | |
| tests/bazarr/test_arr_instances_api.py \ | |
| tests/bazarr/test_arr_subtitle_settings.py \ | |
| tests/bazarr/test_arr_client.py \ | |
| tests/bazarr/test_arr_backfill.py \ | |
| tests/bazarr/test_arr_instance_stamping.py \ | |
| tests/bazarr/test_arr_action_scoping.py \ | |
| tests/bazarr/test_sonarr_sync_utils.py \ | |
| tests/bazarr/test_radarr_sync_utils.py \ | |
| tests/bazarr/test_arr_aux_leaves.py \ | |
| tests/bazarr/test_arr_rootfolder.py \ | |
| tests/bazarr/test_arr_local_id_cutover_migration.py \ | |
| tests/bazarr/test_jobs_queue_progress.py \ | |
| tests/bazarr/test_processing_sync_substep.py \ | |
| tests/bazarr/test_processing_postprocessing.py \ | |
| tests/bazarr/test_sync_progress_report.py \ | |
| tests/bazarr/test_subsync_engines.py \ | |
| tests/bazarr/test_sync_instance_overrides.py \ | |
| tests/bazarr/test_subzero_keep_lyrics.py \ | |
| tests/bazarr/test_archive_extraction.py \ | |
| tests/bazarr/test_security_guards.py \ | |
| tests/bazarr/test_login_backdrops.py \ | |
| tests/bazarr/test_onboarding_flag.py \ | |
| tests/bazarr/test_ui.py \ | |
| tests/bazarr/test_utilities_video_analyzer.py \ | |
| tests/bazarr/test_embedded_subtitle_extraction.py \ | |
| tests/subliminal_patch/test_subliminal_rebase.py \ | |
| tests/subliminal_patch/test_embeddedsubtitles.py \ | |
| tests/subliminal_patch/test_subsunacs.py \ | |
| tests/subliminal_patch/test_filebot_refiner.py \ | |
| tests/subliminal_patch/test_mods.py \ | |
| tests/subliminal_patch/test_mods_keep_lyrics.py \ | |
| -v --tb=short | |
| - name: pytest cross-instance isolation guards (isolated per file) | |
| # These seed colliding upstream ids across instances and assert no leak - | |
| # the central invariant of the multiple-arr-instances feature. Several of | |
| # them leak module/global state (sys.modules, config) when pytest collects | |
| # them in ONE process, so each runs in its OWN pytest process. The PG | |
| # cutover test needs a driver + the postgres service (env below). | |
| env: | |
| BAZARR_PG_TEST_URL: postgresql+psycopg://postgres:postgres@localhost:5432/bazarr_test | |
| run: | | |
| set -e | |
| pip install "psycopg[binary]" | |
| for f in \ | |
| tests/bazarr/test_editor_api.py \ | |
| tests/bazarr/test_arr_atomicity_secrets.py \ | |
| tests/bazarr/test_arr_pg_cutover_migration.py \ | |
| tests/bazarr/test_editor_instance_scope.py \ | |
| tests/bazarr/test_history_blacklist_scope.py \ | |
| tests/bazarr/test_local_id_actions.py \ | |
| tests/bazarr/test_navigation_local_ids.py \ | |
| tests/bazarr/test_provider_blacklist_instance_scope.py \ | |
| tests/bazarr/test_wanted_instance_scope.py \ | |
| tests/bazarr/test_movies_history_scoping.py \ | |
| tests/bazarr/test_series_identity_counts.py \ | |
| tests/bazarr/test_system_searches.py \ | |
| tests/bazarr/test_api_utils_images.py \ | |
| tests/bazarr/test_threading_scope.py \ | |
| tests/bazarr/test_blacklist_delete_scope.py \ | |
| tests/bazarr/test_content_metadata_scope.py \ | |
| tests/bazarr/test_episode_parser_scope.py \ | |
| tests/bazarr/test_files_browse_instance_scope.py \ | |
| tests/bazarr/test_path_mappings_instance.py \ | |
| tests/bazarr/test_threading_followup.py \ | |
| tests/bazarr/test_mass_operations.py ; do | |
| echo "::group::$f" | |
| pytest "$f" -p no:cacheprovider -q | |
| echo "::endgroup::" | |
| done | |
| - name: Unit Tests | |
| run: | | |
| bash '${{ env.SCRIPTS_DIRECTORY }}/build_test.sh' |