Files
MoviePilot/.github/workflows/native-dependency-update.yml

105 lines
3.4 KiB
YAML

name: Native Dependency Update Probe
on:
pull_request:
branches:
- v3
paths:
- 'app/adapters/external/market.py'
- 'app/adapters/system/host.py'
- 'app/adapters/system/package.py'
- 'app/adapters/system/plugin/package.py'
- 'app/application/plugin/install.py'
- 'app/runtime/dependencies/native.py'
- 'app/runtime/dependencies/profile.py'
- 'scripts/probe_native_dependency_update.py'
- '.github/workflows/native-dependency-update.yml'
push:
branches:
- v3
paths:
- 'app/adapters/external/market.py'
- 'app/adapters/system/host.py'
- 'app/adapters/system/package.py'
- 'app/adapters/system/plugin/package.py'
- 'app/application/plugin/install.py'
- 'app/runtime/dependencies/native.py'
- 'app/runtime/dependencies/profile.py'
- 'scripts/probe_native_dependency_update.py'
- '.github/workflows/native-dependency-update.yml'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: native-dependency-update-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
probe:
name: Loaded native dependency update / ${{ matrix.name }}
runs-on: ${{ matrix.runner }}
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- name: Linux x64
runner: ubuntu-24.04
artifact-suffix: linux-x64
expected-system: Linux
expected-machine: x86_64
expected-python-platform-suffix: x86_64
- name: macOS ARM
runner: macos-15
artifact-suffix: macos-arm64
expected-system: Darwin
expected-machine: arm64
expected-python-platform-suffix: arm64
- name: Windows x64
runner: windows-2025
artifact-suffix: windows-x64
expected-system: Windows
expected-machine: AMD64
expected-python-platform-suffix: win-amd64
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Set up uv
uses: astral-sh/setup-uv@v10.0.1
with:
python-version: '3.14'
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock
- name: Install locked standard runtime
run: >-
uv sync --locked --inexact --no-default-groups
--group runtime-standard --python 3.14
- name: Probe loaded native dependency update
env:
AUTO_UPDATE_RESOURCE: 'false'
CONFIG_DIR: ${{ runner.temp }}/moviepilot-native-update-config
MOVIEPILOT_SAFE_MODE: 'true'
SUPERUSER_PASSWORD: moviepilot-ci-only
run: >-
uv run --locked --no-sync python
-m scripts.probe_native_dependency_update
--output ${{ runner.temp }}/moviepilot-native-update-${{ matrix.artifact-suffix }}.json
--expected-system ${{ matrix.expected-system }}
--expected-machine ${{ matrix.expected-machine }}
--expected-python-platform-suffix ${{ matrix.expected-python-platform-suffix }}
- name: Upload native update evidence
if: always()
uses: actions/upload-artifact@v7
with:
name: native-dependency-update-${{ matrix.artifact-suffix }}
path: ${{ runner.temp }}/moviepilot-native-update-${{ matrix.artifact-suffix }}.json
if-no-files-found: error