# 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