From c986e9a76ee52d55985aead6dae9dd4cbd7e93e0 Mon Sep 17 00:00:00 2001 From: omar-nahhas-agent Date: Sat, 20 Jun 2026 15:04:53 +0000 Subject: [PATCH 1/2] =?UTF-8?q?ci:=20adopt=20devkit=20e2e=20(fork=20?= =?UTF-8?q?=E2=80=94=20plugin=5Fdir:=20.=20via=20.devkit.yml)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .devkit.yml | 3 +++ .github/workflows/devkit-sync.yml | 33 +++++++++++++++++++++++++++++++ .github/workflows/plugin-e2e.yml | 24 ++++++++++++++++++++++ .gitmodules | 3 +++ tests/_testkit | 1 + 5 files changed, 64 insertions(+) create mode 100644 .devkit.yml create mode 100644 .github/workflows/devkit-sync.yml create mode 100644 .github/workflows/plugin-e2e.yml create mode 100644 .gitmodules create mode 160000 tests/_testkit diff --git a/.devkit.yml b/.devkit.yml new file mode 100644 index 0000000..12cb3e6 --- /dev/null +++ b/.devkit.yml @@ -0,0 +1,3 @@ +# Fork kept in sync with upstream — declare the source dir (DEC-043). +plugin_dir: . +display_name: "Phantom Bridge" diff --git a/.github/workflows/devkit-sync.yml b/.github/workflows/devkit-sync.yml new file mode 100644 index 0000000..32993e5 --- /dev/null +++ b/.github/workflows/devkit-sync.yml @@ -0,0 +1,33 @@ +# devkit-sync — caller template (SPEC DEC-044). +# +# Copied into a consumer plugin repo at .github/workflows/devkit-sync.yml by +# `make link-workflows`. Keeps the repo's vendored devkit submodule +# (tests/_testkit) current by bumping it to the devkit's latest main nightly. +# +# Required REPO-level secrets (the shared sync GitHub App; already present on +# repos that previously used skills-sync — same App): +# SKILLS_SYNC_APP_CLIENT_ID — App OAuth Client ID (Iv23li…) +# SKILLS_SYNC_APP_PRIVATE_KEY — App private-key PEM +# The App must be installed (Contents:Read) on the devkit repo. It does NOT +# need to be installed on this consumer — GITHUB_TOKEN covers the local push/PR. +# +# DO NOT add pull_request: triggers — fork-PR is the secret-exfiltration vector. +name: devkit-sync + +on: + schedule: + - cron: "0 4 * * *" # nightly 04:00 UTC (offset from skills-sync's 03:00) + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + sync: + uses: agent-zero-plugins/agent-zero-plugin-development-testkit/.github/workflows/devkit-sync.yml@main + with: + devkit-submodule-path: "tests/_testkit" + secrets: + SKILLS_SYNC_APP_CLIENT_ID: ${{ secrets.SKILLS_SYNC_APP_CLIENT_ID }} + SKILLS_SYNC_APP_PRIVATE_KEY: ${{ secrets.SKILLS_SYNC_APP_PRIVATE_KEY }} diff --git a/.github/workflows/plugin-e2e.yml b/.github/workflows/plugin-e2e.yml new file mode 100644 index 0000000..70f2173 --- /dev/null +++ b/.github/workflows/plugin-e2e.yml @@ -0,0 +1,24 @@ +# plugin-e2e — caller template (SPEC DEC-020/044). +# +# Copied into a consumer plugin repo at .github/workflows/plugin-e2e.yml by +# `make link-workflows`. Runs the full install → verify-installed → uninstall → +# verify-uninstalled lifecycle (A0 booted nested + rootless) on every PR. +# +# Parameter-free: the reusable workflow resolves the plugin from the repo +# (.devkit.yml `plugin_dir` → else canonical usr/plugins/), so this +# template is identical across all repos. +# +# Needs the shared sync-App secrets to clone the private devkit submodule. +name: plugin-e2e + +on: + pull_request: + branches: ["main", "master"] + workflow_dispatch: + +jobs: + e2e: + uses: agent-zero-plugins/agent-zero-plugin-development-testkit/.github/workflows/plugin-e2e.yml@main + secrets: + SKILLS_SYNC_APP_CLIENT_ID: ${{ secrets.SKILLS_SYNC_APP_CLIENT_ID }} + SKILLS_SYNC_APP_PRIVATE_KEY: ${{ secrets.SKILLS_SYNC_APP_PRIVATE_KEY }} diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..94505eb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tests/_testkit"] + path = tests/_testkit + url = https://github.com/agent-zero-plugins/agent-zero-plugin-development-testkit.git diff --git a/tests/_testkit b/tests/_testkit new file mode 160000 index 0000000..15bb4b2 --- /dev/null +++ b/tests/_testkit @@ -0,0 +1 @@ +Subproject commit 15bb4b2091d15aab8bdea7b0dfe61f8d78093b52 From 1683e043e5a43c33093cc9aa728fc5b8799962d5 Mon Sep 17 00:00:00 2001 From: omar-nahhas-agent Date: Sat, 20 Jun 2026 15:13:16 +0000 Subject: [PATCH 2/2] ci: re-trigger e2e