42 lines
1.4 KiB
YAML
42 lines
1.4 KiB
YAML
name: Public loader health
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '17 4 * * 1'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: public-loader-health
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
canary:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
with:
|
|
python-version: '3.11'
|
|
cache: pip
|
|
- name: Install isolated public-source dependencies
|
|
# These optional SDKs are pinned tighter than the application's stack;
|
|
# do not install them into the application's dependency environment.
|
|
run: |
|
|
python -m venv "$RUNNER_TEMP/loader-health-venv"
|
|
"$RUNNER_TEMP/loader-health-venv/bin/python" -m pip install -r tools/requirements-loader-health.txt
|
|
- name: Probe every public source in isolated processes
|
|
working-directory: agent
|
|
run: '"$RUNNER_TEMP/loader-health-venv/bin/python" -m backtest.loader_health --output "$RUNNER_TEMP/loader-health.json"'
|
|
- name: Retain sanitized health report
|
|
if: always()
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
name: public-loader-health
|
|
path: ${{ runner.temp }}/loader-health.json
|
|
if-no-files-found: warn
|
|
retention-days: 30
|