Files
dotnet__skills/.github/workflows/codex-plugin-smoke.yml
Amaury Levé 460a01882f Define and validate native Codex plugin support (#1164)
* fix: validate native Codex plugin support

Separate Codex-compatible plugin components from GitHub Copilot custom agents, validate Codex manifest fields and MCP shapes, and document the native agent installation boundary.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: strengthen Codex plugin verification

Validate Codex MCP per-tool settings and add a pinned native smoke lane that installs the marketplace, discovers skills and MCP, and calls binlog_overview.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: avoid restarting Codex MCP smoke client

Use the real tool call as the app-server initialization so the Linux smoke test does not start and tear down a redundant status client first.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: harden Codex validation and smoke cleanup

Constrain smoke artifacts to a dedicated child directory, validate Codex manifest field shapes and required skill paths, and document the separate Agents SDK handoff model.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: align Codex smoke and hooks parsing

Use the clean Codex installation's default provider for the direct MCP call and reject heterogeneous hooks arrays like the runtime parser.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: verify every Codex plugin skill

Compare native skill discovery with the full repository inventory, match Codex lexical path rejection, and allow null optional MCP tool settings.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* fix: address Codex compatibility review

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-15 10:47:14 +02:00

71 lines
2.3 KiB
YAML

name: codex-plugin-smoke
on:
pull_request:
paths:
- ".agents/plugins/marketplace.json"
- "plugins/*/plugin.json"
- "plugins/*/.codex-plugin/plugin.json"
- "plugins/*/.mcp.json"
- "plugins/*/mcp.json"
- "plugins/*/skills/**"
- "eng/codex/**"
- ".github/workflows/codex-plugin-smoke.yml"
push:
branches: [main]
paths:
- ".agents/plugins/marketplace.json"
- "plugins/*/plugin.json"
- "plugins/*/.codex-plugin/plugin.json"
- "plugins/*/.mcp.json"
- "plugins/*/mcp.json"
- "plugins/*/skills/**"
- "eng/codex/**"
- ".github/workflows/codex-plugin-smoke.yml"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
smoke:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with:
persist-credentials: false
- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v5
with:
global-json-file: global.json
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
- name: Install Codex CLI
env:
CODEX_SHA256: d7e18b2597ae8f242f5f31ee9e90deef48dbc9edd634d9868fb6435d08c07f02
CODEX_VERSION: 0.154.0
shell: bash
run: |
mkdir -p artifacts/codex-cli
curl -fsSLo artifacts/codex-cli/codex.tar.gz \
"https://github.com/openai/codex/releases/download/rust-v${CODEX_VERSION}/codex-x86_64-unknown-linux-musl.tar.gz"
echo "${CODEX_SHA256} artifacts/codex-cli/codex.tar.gz" | sha256sum -c -
tar -xzf artifacts/codex-cli/codex.tar.gz -C artifacts/codex-cli
mv artifacts/codex-cli/codex-x86_64-unknown-linux-musl artifacts/codex-cli/codex
chmod +x artifacts/codex-cli/codex
# This calls MCP transport directly without exercising authentication or model inference.
- name: Run credential-free Codex plugin discovery and MCP transport smoke test
run: node eng/codex/codex-plugin-smoke.mjs --codex "${{ github.workspace }}/artifacts/codex-cli/codex"