master
Under a CI burst (a batch merge fires ~13 workflows x ~4 jobs, each doing an AppRole login = a raft write), the vault nodes return nginx 504s and the rate-limit quota returns 429s. Both are non-JSON, which crashed jq and hard-failed the job with a misleading "parse error". Add a bao_req helper that retries connect-failures/429/5xx with backoff+jitter (~60s over 6 tries) and surfaces real 4xx bodies unchanged. Transient throttling no longer fails CI. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gitea-actions
Shared public Gitea Actions composite actions for the SpikerSoft org.
Public on purpose: these contain only workflow logic (shell/curl/jq), never
secrets. Runners can clone this repo anonymously, which is why shared actions
live here instead of the private spikersoft-infrastructure repo (a private
repo can't be cloned by a job token scoped to a different repo).
Actions
-
bao-secrets — AppRole-login to OpenBao and export requested KV v2 secrets into the job env (masked). Phase 1, spikersoft-issues#545.
- uses: https://git.spikersoft.com/spikerj/gitea-actions/bao-secrets@master with: role-id: ${{ secrets.BAO_ROLE_ID }} secret-id: ${{ secrets.BAO_SECRET_ID }} secrets: | DOCKER_PASSWORD secret/ci/shared/registry password
Reference by full URL (https://git.spikersoft.com/...) so Gitea resolves it
from this instance instead of github.com.
Description
Shared Gitea Actions composite actions (public: logic only, no secrets). bao-secrets = OpenBao AppRole fetch. spikersoft-issues#545
33 KiB