From 0e2a84e7857a3101107be938495b49e2ba116dad Mon Sep 17 00:00:00 2001 From: Karl Rister Date: Tue, 14 Apr 2026 12:35:43 -0500 Subject: [PATCH] feat: switch controller-build to repository_dispatch Replace the reusable workflow call with a repository_dispatch to crucible so all controller builds run in crucible's context with working cross-repo concurrency. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/cdm-ci.yaml | 1 + .github/workflows/controller-build.yaml | 32 +++++++++++++++++++++++++ .github/workflows/crucible-ci.yaml | 1 + 3 files changed, 34 insertions(+) create mode 100644 .github/workflows/controller-build.yaml diff --git a/.github/workflows/cdm-ci.yaml b/.github/workflows/cdm-ci.yaml index 047bda78..ffa96a44 100644 --- a/.github/workflows/cdm-ci.yaml +++ b/.github/workflows/cdm-ci.yaml @@ -26,6 +26,7 @@ jobs: .github/rulesets/** .github/workflows/run-crucible-tracking.yaml .github/workflows/crucible-ci.yaml + .github/workflows/controller-build.yaml .github/workflows/cdm-ci.yaml docs/** - name: Display changes diff --git a/.github/workflows/controller-build.yaml b/.github/workflows/controller-build.yaml new file mode 100644 index 00000000..08fa6c15 --- /dev/null +++ b/.github/workflows/controller-build.yaml @@ -0,0 +1,32 @@ +name: controller-build + +on: + pull_request_target: + types: [ closed ] + branches: [ master ] + paths: + - workshop.json + - .github/workflows/controller-build.yaml + workflow_dispatch: + +jobs: + dispatch: + if: github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - name: Generate app token + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ vars.APP_ID__CRUCIBLE_WORKFLOW_DISPATCH }} + private-key: ${{ secrets.PRIVATE_KEY__CRUCIBLE_WORKFLOW_DISPATCH }} + owner: perftool-incubator + repositories: crucible + + - name: Dispatch controller build + run: | + curl -s -X POST \ + -H "Authorization: Bearer ${{ steps.app-token.outputs.token }}" \ + -H "Accept: application/vnd.github+json" \ + "https://api.github.com/repos/perftool-incubator/crucible/dispatches" \ + -d '{"event_type":"controller-build","client_payload":{"ci_target":"CommonDataModel"}}' diff --git a/.github/workflows/crucible-ci.yaml b/.github/workflows/crucible-ci.yaml index 39d8ba2a..a765dfe1 100644 --- a/.github/workflows/crucible-ci.yaml +++ b/.github/workflows/crucible-ci.yaml @@ -26,6 +26,7 @@ jobs: .github/rulesets/** .github/workflows/run-crucible-tracking.yaml .github/workflows/crucible-ci.yaml + .github/workflows/controller-build.yaml .github/workflows/cdm-ci.yaml docs/** - name: Display changes