# Periodic patch-list check; fetch details + version-linked data only when new. # Repo secrets: CLOUDFLARE_EMAIL, CLOUDFLARE_API_KEY, # OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET # (STRATZ not required for this tier) name: web-patch on: schedule: # Every 6 hours UTC - cron: "0 */6 * * *" workflow_dispatch: concurrency: group: climperor-web-patch-refresh cancel-in-progress: false jobs: refresh: runs-on: self-hosted steps: - name: Checkout uses: actions/checkout@v4 - name: Restore refresh cache uses: actions/cache@v4 with: path: web/.refresh-cache key: web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}-${{ github.run_id }} restore-keys: | web-refresh-${{ runner.os }}-${{ hashFiles('web/data/patches.json') }}- web-refresh-${{ runner.os }}- - name: Install deps run: | set -e PYTHON=python3 command -v python3 >/dev/null || PYTHON=python command -v node >/dev/null || { echo "node/npx required for wrangler deploy"; exit 1; } # Prefer job-local venv (PEP 668). Some runners lack ensurepip/python3-venv. rm -rf .venv if "$PYTHON" -m venv .venv; then .venv/bin/pip install -q -r web/requirements.txt echo "CLIMPEROR_PY=${PWD}/.venv/bin/python" >> "$GITHUB_ENV" else echo "venv unavailable; pip --break-system-packages" "$PYTHON" -m pip install -q --break-system-packages -r web/requirements.txt echo "CLIMPEROR_PY=${PYTHON}" >> "$GITHUB_ENV" fi - name: Refresh patch tier env: REFRESH_CACHE_ENABLED: "1" REFRESH_RUN_ID: ${{ github.run_id }} CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }} CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }} OSS_ACCESS_KEY_ID: ${{ secrets.OSS_ACCESS_KEY_ID }} OSS_ACCESS_KEY_SECRET: ${{ secrets.OSS_ACCESS_KEY_SECRET }} run: | set -e "${CLIMPEROR_PY}" web/refresh_web.py --tier patch - name: Save refresh summary if: always() uses: actions/upload-artifact@v4 with: name: web-patch-refresh-${{ github.run_id }} path: web/.refresh/summary.json if-no-files-found: warn