Skip to content

Commit 47973fa

Browse files
Agents.md stuff
1 parent 77146ca commit 47973fa

2 files changed

Lines changed: 44 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ on:
88
push:
99
branches: ["main"]
1010

11-
concurrency:
12-
group: ci-${{ github.ref }}
13-
# cancel-in-progress: ${{ github.event_name == 'pull_request' }}
11+
# concurrency:
12+
# group: ci-${{ github.ref }}
13+
# cancel-in-progress: ${{ github.event_name == 'pull_request' }}
1414

1515
permissions:
1616
contents: read
@@ -21,7 +21,7 @@ jobs:
2121
# Compute once which path groups changed; every other job references these
2222
# outputs. dorny/paths-filter handles PR base diff, push base diff, and
2323
# empty results on non-diff events (workflow_dispatch); the `if:` guards
24-
# below explicitly opt non-PR events back into running everything.
24+
# below explicitly opt manual runs back into running everything.
2525
changes:
2626
name: Detect changes
2727
runs-on: ubuntu-latest
@@ -77,6 +77,7 @@ jobs:
7777
- .github/workflows/ci.yml
7878
- .github/workflows/generate-docs.yml
7979
- .github/workflows/publish-docs.yml
80+
- "!AGENTS.md"
8081
quality:
8182
- src/**
8283
- include/**
@@ -95,14 +96,14 @@ jobs:
9596
builds:
9697
name: Builds
9798
needs: changes
98-
if: ${{ needs.changes.outputs.builds == 'true' || github.event_name != 'pull_request' }}
99+
if: ${{ needs.changes.outputs.builds == 'true' || github.event_name == 'workflow_dispatch' }}
99100
uses: ./.github/workflows/builds.yml
100101
secrets: inherit
101102

102103
tests:
103104
name: Tests
104105
needs: changes
105-
if: ${{ needs.changes.outputs.tests == 'true' || github.event_name != 'pull_request' }}
106+
if: ${{ needs.changes.outputs.tests == 'true' || github.event_name == 'workflow_dispatch' }}
106107
uses: ./.github/workflows/tests.yml
107108
secrets: inherit
108109

@@ -119,11 +120,11 @@ jobs:
119120
quality-checks:
120121
name: Quality Checks
121122
needs: changes
122-
if: ${{ needs.changes.outputs.quality == 'true' || github.event_name != 'pull_request' }}
123+
if: ${{ needs.changes.outputs.quality == 'true' || github.event_name == 'workflow_dispatch' }}
123124
uses: ./.github/workflows/quality-checks.yml
124125

125126
generate-docs:
126127
name: Generate Docs
127128
needs: changes
128-
if: ${{ needs.changes.outputs.docs == 'true' || github.event_name != 'pull_request' }}
129+
if: ${{ needs.changes.outputs.docs == 'true' || github.event_name == 'workflow_dispatch' }}
129130
uses: ./.github/workflows/generate-docs.yml

AGENTS.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,38 @@ When adding new client facing functionality, add benchmarking to understand the
373373
- A single participant cannot subscribe to its own tracks as "remote." Testing sender/receiver requires two separate room connections with distinct identities.
374374
- macOS dylibs require `install_name_tool` fixups for `@rpath` — the CMakeLists.txt handles this automatically. Do not manually adjust RPATH unless you understand the implications.
375375
- When consuming the installed SDK, use `-DLIVEKIT_LOCAL_SDK_DIR=/path/to/sdk` to point cmake at a local install instead of downloading a release tarball.
376+
377+
### CI Workflow Structure
378+
379+
`ci.yml` is the PR-review aggregator. It computes path changes once with
380+
`dorny/paths-filter` and conditionally calls reusable workflows for the
381+
expensive stages. Manual `workflow_dispatch` runs intentionally opt back into
382+
all filtered stages; normal pull requests and pushes use the path filters.
383+
384+
- `.github/workflows/ci.yml` — Top-level PR/push/manual aggregator and path
385+
filter owner.
386+
- `.github/workflows/builds.yml` — Reusable SDK and example-collection build
387+
matrix.
388+
- `.github/workflows/tests.yml` — Reusable unit/integration test matrix.
389+
- `.github/workflows/quality-checks.yml` — Reusable `clang-format` and
390+
`clang-tidy` checks.
391+
- `.github/workflows/generate-docs.yml` — Reusable Doxygen docs validation.
392+
- `.github/workflows/license_check.yml` — Cheap license check, run on every CI
393+
invocation.
394+
- `.github/workflows/pin_check.yml` — Cheap action pin check, run on every CI
395+
invocation.
396+
- `.github/workflows/docker-images.yml` — Docker image build/publish workflow,
397+
outside PR-review aggregation.
398+
- `.github/workflows/docker-validate.yml` — Docker image validation workflow,
399+
outside PR-review aggregation.
400+
401+
When adding or renaming files that affect a CI stage, update the matching
402+
`ci.yml` `changes` filter in the same PR. For example, new build scripts,
403+
CMake files, package manifests, or reusable build workflows should be added to
404+
the `builds` filter; test-only helpers to `tests`; formatting/static-analysis
405+
configuration to `quality`; and docs generation inputs to `docs`.
406+
407+
Keep broad agent guidance files such as `AGENTS.md` out of the expensive
408+
`builds`, `tests`, `quality`, and `docs` filters unless they start affecting
409+
generated docs or build artifacts. An `AGENTS.md`-only change should not trigger
410+
those stages; only the always-on cheap checks should run.

0 commit comments

Comments
 (0)