mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-17 12:22:34 +03:00
The radar-server only consumes the stable asset, so a catalog merge on the active release
branch waited for the Monday 06:17 UTC cron and the feed sat up to a week behind the README
(2026-09-14: the Together signup-credit row removed in d6e62ae only left the feed after a
manual dispatch). Trigger on release/** pushes for the same catalog paths and move the
schedule to 03:17 UTC daily, ahead of the server's 04:23 UTC publish cycle.
71 lines
3.0 KiB
YAML
71 lines
3.0 KiB
YAML
# Publica o export estável do catálogo consumido pelo OmniRoute Radar numa URL
|
|
# fixa (asset de release `radar-export-latest`), para o servidor privado do Radar
|
|
# (1 GB RAM, nunca clona/builda o OmniRoute) baixá-lo via `RADAR_EXPORT_URL` em
|
|
# vez de depender do snapshot gravado no deploy. Fonte: scripts/release/radar-export.mjs.
|
|
#
|
|
# A URL estável resultante (definir em RADAR_EXPORT_URL no .env do radar-server):
|
|
# https://github.com/diegosouzapw/OmniRoute/releases/download/radar-export-latest/export-omniroute.json
|
|
name: Radar Export
|
|
|
|
on:
|
|
workflow_dispatch: # o operador pode publicar sob demanda (de qualquer ref)
|
|
push:
|
|
# `main` e a release ativa (default branch) publicam no mesmo asset estável: o
|
|
# radar-server só consome o asset, então um merge de catálogo na release que ficasse
|
|
# à espera do cron semanal deixava o feed até 7 dias atrás do README (2026-09-14: a
|
|
# linha da Together removida em d6e62ae só saiu do feed com dispatch manual).
|
|
branches: [main, "release/**"]
|
|
paths:
|
|
- open-sse/config/freeModelCatalog.data.ts
|
|
- open-sse/config/freeModelCatalog.ts
|
|
- open-sse/config/providerRegistry.ts
|
|
- open-sse/config/providers/**
|
|
- scripts/release/radar-export.mjs
|
|
- .github/workflows/radar-export.yml
|
|
schedule:
|
|
# Diário 03:17 UTC — antes do `radar-feed.timer` do servidor (04:23 UTC), para o ciclo
|
|
# do dia já enxergar o export do dia; também mantém geradoEm/proveniência frescos.
|
|
- cron: "17 3 * * *"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: radar-export-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CI_NODE_VERSION: "24"
|
|
|
|
jobs:
|
|
publish-export:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write # gh release upload — clobra o asset estável do export
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
persist-credentials: false # publish usa GH_TOKEN via gh release, não a credencial do checkout
|
|
- uses: actions/setup-node@v7
|
|
with:
|
|
node-version: ${{ env.CI_NODE_VERSION }}
|
|
cache: npm
|
|
- run: npm ci
|
|
- name: Generate catalog export with provenance
|
|
run: node --import tsx/esm scripts/release/radar-export.mjs "$RUNNER_TEMP/export-omniroute.json"
|
|
- name: Publish to the stable release asset
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
set -euo pipefail
|
|
TAG="radar-export-latest"
|
|
# Cria o release estável na primeira vez; nas seguintes só re-anexa o asset.
|
|
if ! gh release view "$TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then
|
|
gh release create "$TAG" \
|
|
--repo "$GITHUB_REPOSITORY" \
|
|
--title "Radar catalog export (rolling)" \
|
|
--notes "Export estável do catálogo OmniRoute para o Radar. Atualizado automaticamente; NÃO é um release de versão do produto." \
|
|
--latest=false
|
|
fi
|
|
gh release upload "$TAG" "$RUNNER_TEMP/export-omniroute.json" --repo "$GITHUB_REPOSITORY" --clobber
|