name: 02.2. V2 Health Monitor on: workflow_dispatch: inputs: force_full_check: description: 'Force full re-validation (bypasses cache)' type: boolean default: false restore_cache: description: 'Restore inventory from cache (Warning: May overwrite recent manual changes)' required: false type: boolean default: false permissions: contents: write pull-requests: write concurrency: group: v2-health-${{ github.ref }} cancel-in-progress: true jobs: run-health: runs-on: ubuntu-latest steps: - name: Repository Synchronization uses: actions/checkout@v7 with: ref: develop - name: Python 3.11 Environment Provisioning uses: actions/setup-python@v6 with: python-version: '3.11' cache: 'pip' - name: Restore Incremental Inventory Cache if: ${{ github.event.inputs.restore_cache == 'true' }} uses: actions/cache/restore@v6 with: path: data/inventory.yaml key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }} restore-keys: | inventory-v2- - name: Installation of Dependencies run: | pip install --no-cache-dir pydantic PyGithub httpx fake-useragent pytz python-dotenv pyyaml tenacity - name: Run V2 Health Monitor env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} FORCE_FULL_CHECK: ${{ github.event.inputs.force_full_check || 'false' }} PYTHONPATH: ${{ github.workspace }} PYTHONUNBUFFERED: "1" run: python -u -m src.v2_health - name: Create Pull Request for Health Update uses: peter-evans/create-pull-request@v8 with: branch: bot/v2-health-sync base: develop title: "V2 Data: Health Inventory Sync" commit-message: "chore: update inventory health status [skip ci]" labels: "v2-data, health-sync" - name: Persist Incremental Inventory to Cache if: always() uses: actions/cache/save@v6 with: path: data/inventory.yaml key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}