Repository navigation
Keeper #2152
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Keeper | |
| on: | |
| # Offset from update-prices.yml (which runs */5) so the two 5-min crons don't | |
| # fire on the same minute and cancel each other in the shared concurrency | |
| # group below. Keeper runs at minutes 02, 07, 12, ... giving each workflow | |
| # ~2.5 min of clear runway before the next tick arrives. | |
| schedule: | |
| - cron: "2-59/5 * * * *" | |
| # External scheduler fallback (GitHub's `schedule` trigger drops ~95% of | |
| # intended ticks for this repo; see docs/KEEPER_OPERATIONS.md). POST to | |
| # /repos/<owner>/<repo>/dispatches with body {"event_type":"keeper-tick"}. | |
| repository_dispatch: | |
| types: [keeper-tick] | |
| workflow_dispatch: | |
| # Serialize against every other workflow that signs with KEEPER_PRIVATE_KEY | |
| # (update-prices.yml, vault-agent.yml) so they can't race on the same nonce. | |
| concurrency: | |
| group: keeper-key-serialized | |
| cancel-in-progress: false | |
| permissions: | |
| contents: read | |
| jobs: | |
| keeper: | |
| name: Keeper Epoch | |
| runs-on: ubuntu-latest | |
| env: | |
| PRIVATE_KEY: ${{ secrets.KEEPER_PRIVATE_KEY }} | |
| SEPOLIA_RPC_URL: ${{ secrets.SEPOLIA_RPC_URL }} | |
| FUJI_RPC_URL: ${{ secrets.FUJI_RPC_URL }} | |
| # Chains to include each epoch. Add a chain here only after deploying its | |
| # StateRelay and committing apps/web/src/config/<chain>-deployment.json. | |
| KEEPER_CHAINS: "sepolia,fuji" | |
| KEEPER_ONCE: "1" | |
| steps: | |
| # No submodules: services/keeper runs tsc + node only. | |
| - uses: actions/checkout@v5 | |
| - name: Setup CI environment (cached) | |
| uses: ./.github/actions/setup-snx | |
| - name: Build keeper | |
| run: npm --prefix services/keeper run build | |
| - name: Run one keeper epoch | |
| run: node services/keeper/dist/index.js |