mirror of
https://github.com/redwoodjs/local-ci.git
synced 2026-09-19 07:54:29 +08:00
e9c5df5f6f
* feat: support local reusable workflows (uses: ./.github/workflows/...) Inline called workflow jobs into the caller's dependency graph so that `jobs.<id>.uses` with local refs works end-to-end. Includes dependency rewiring, smoke tests, runner seed resilience fix, boot-failure log surfacing, and dev script improvements. Closes #149 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update website compatibility matrix for reusable workflows Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add section descriptions to website compatibility matrix Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add descriptions to compatibility matrix legend items Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add 'not planned' status icon to compatibility matrix Distinguish architectural limitations (concurrency groups, GitHub secrets) from features that could be implemented in the future. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: support remote reusable workflows (uses: owner/repo/path@ref) Pre-fetch remote workflow YAML from GitHub Contents API before expansion, cache SHA refs forever and always re-fetch mutable tag/branch refs. Also changes missing workflow files from warn+skip to hard failure. Closes #165 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: split monolithic smoke-tests.yml into discrete workflow files Each smoke test area now has its own workflow file for isolated failure visibility: matrix, artifacts/services, cross-job outputs, job conditions, reusable workflows (local + remote), and binary smoke. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: fix formatting in .docs/ files Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: clarify agent-ci-dev.sh is for local development only Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
1.9 KiB
YAML
51 lines
1.9 KiB
YAML
name: "Smoke: Binary"
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [opened, labeled, synchronize]
|
|
|
|
jobs:
|
|
binary-smoke:
|
|
name: Binary Smoke
|
|
if: '!github.event.pull_request.draft && (contains(fromJSON(''["MEMBER", "OWNER", "COLLABORATOR"]''), github.event.pull_request.author_association) || contains(github.event.pull_request.labels.*.name, ''safe-to-run''))'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10.30.1
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: "pnpm"
|
|
- run: pnpm install
|
|
- run: pnpm --filter @redwoodjs/agent-ci... -r build
|
|
- name: Verify shebang
|
|
run: |
|
|
head -1 packages/cli/dist/cli.js | grep -q '#!/usr/bin/env node'
|
|
echo "✅ Shebang is correct"
|
|
- name: Run built binary (node)
|
|
run: |
|
|
set +e
|
|
output=$(node packages/cli/dist/cli.js 2>&1)
|
|
exit_code=$?
|
|
set -e
|
|
echo "$output"
|
|
[ "$exit_code" -eq 1 ] || (echo "❌ Expected exit code 1, got $exit_code" && exit 1)
|
|
echo "$output" | grep -q "Usage: agent-ci" || (echo "❌ Usage text not found" && exit 1)
|
|
echo "✅ Built binary executes correctly via node"
|
|
- name: Run built binary (npx)
|
|
run: |
|
|
set +e
|
|
output=$(npx --yes ./packages/cli 2>&1)
|
|
exit_code=$?
|
|
set -e
|
|
echo "$output"
|
|
[ "$exit_code" -eq 1 ] || (echo "❌ Expected exit code 1, got $exit_code" && exit 1)
|
|
echo "$output" | grep -q "Usage: agent-ci" || (echo "❌ Usage text not found in npx output" && exit 1)
|
|
echo "✅ Built binary executes correctly via npx"
|