bytelyst-devops-tools/.gitea/workflows/shell-ci.yml
saravanakumardb1 76104bda84 fix(cli): harden bytelyst-cli env loading, pagination, and HTTP checks
- .env via 'set -a; . ./.env; set +a' (handles quoted values/spaces safely)
- printf for the GITHUB_TOKEN message so the newline renders
- gh_get_all: paginate all pages (per_page=100) and verify HTTP 200 before jq;
  rewire list-public/list-private/check-collaborators through it
- fix SC2199 whitelist membership (explicit loop, no substring false-matches)
- shell-ci: gate shellcheck on bytelyst-cli + run agent-queue self-test
2026-05-28 22:30:08 -07:00

72 lines
2.1 KiB
YAML

name: Shell CI — agent-queue + CLI
on:
push:
branches: [main]
paths:
- 'agent-queue/**'
- 'bytelyst-cli.sh'
- '.gitea/workflows/shell-ci.yml'
pull_request:
branches: [main]
paths:
- 'agent-queue/**'
- 'bytelyst-cli.sh'
- '.gitea/workflows/shell-ci.yml'
concurrency:
group: shell-ci-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: shellcheck + syntax
runs-on: [ubuntu-latest, bytelyst, hostinger]
container:
image: node:20-bookworm
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
github-server-url: https://gitea.bytelyst.com
- name: Install shellcheck
run: |
apt-get update -qq
apt-get install -y -qq shellcheck
shellcheck --version
- name: shellcheck (errors fail the build)
run: |
shellcheck --severity=error --shell=bash \
agent-queue/agent-queue.sh \
agent-queue/selftest.sh \
bytelyst-cli.sh
- name: bash syntax check (gating, all scripts)
run: |
bash -n agent-queue/agent-queue.sh
bash -n agent-queue/selftest.sh
bash -n bytelyst-cli.sh
- name: agent-queue self-test (no-op engine cycle)
run: ./agent-queue/selftest.sh
- name: node syntax check (dashboard)
run: node --check agent-queue/dashboard.mjs
- name: smoke test (init + add + drain, no real agent)
run: |
set -euo pipefail
export AGENT_QUEUE_ROOT="$PWD/.ci-queue"
./agent-queue/agent-queue.sh init
# task with an invalid cwd lands in failed/ without launching any agent
printf '%s\n' '---' 'engine: devin' 'cwd: /no/such/dir' 'yolo: true' '---' '# ci' \
> /tmp/ci-task.md
./agent-queue/agent-queue.sh add /tmp/ci-task.md
./agent-queue/agent-queue.sh run --once
test -f "$AGENT_QUEUE_ROOT"/failed/*.md
echo "smoke OK: task routed to failed/ as expected"
rm -rf "$AGENT_QUEUE_ROOT"