Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 13 additions & 17 deletions .github/workflows/_smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,11 @@ jobs:
WIN=$(jq -cn --argjson a "$CORE_WIN" '$a')
PORTABLE=$(jq -cn --argjson a "$CORE_PORTABLE" '$a')
fi
# Keep the UI marker explicit because the smoke wrappers use it to
# require and validate the shipped content-addressed frontend pack.
VARIANTS='["ui"]'
UNIX_M=$(jq -cn --argjson a "$UNIX" --argjson v "$VARIANTS" '{include:[$a[] as $o | $v[] as $t | ($o + {variant:$t})]}')
WIN_M=$(jq -cn --argjson a "$WIN" --argjson v "$VARIANTS" '{include:[$a[] as $o | $v[] as $t | ($o + {variant:$t})]}')
PORTABLE_M=$(jq -cn --argjson a "$PORTABLE" --argjson v "$VARIANTS" '{include:[$a[] as $o | $v[] as $t | ($o + {variant:$t})]}')
# One composition ships; the wrappers assert the embedded UI themselves
# (SMOKE_REQUIRE_UI in scripts/ci/smoke-artifact.sh and below).
UNIX_M=$(jq -cn --argjson a "$UNIX" '{include:$a}')
WIN_M=$(jq -cn --argjson a "$WIN" '{include:$a}')
PORTABLE_M=$(jq -cn --argjson a "$PORTABLE" '{include:$a}')
echo "unix=$UNIX_M" >> "$GITHUB_OUTPUT"
echo "windows=$WIN_M" >> "$GITHUB_OUTPUT"
echo "portable=$PORTABLE_M" >> "$GITHUB_OUTPUT"
Expand All @@ -102,9 +101,8 @@ jobs:

- name: Extract release artifact
run: |
SUFFIX=${{ matrix.variant == 'ui' && '-ui' || '' }}
mkdir -p "$RUNNER_TEMP/cbm-artifact"
tar -xzf codebase-memory-mcp${SUFFIX}-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz \
tar -xzf codebase-memory-mcp-${{ matrix.goos }}-${{ matrix.goarch }}.tar.gz \
-C "$RUNNER_TEMP/cbm-artifact"
chmod +x "$RUNNER_TEMP/cbm-artifact/codebase-memory-mcp"

Expand All @@ -116,10 +114,10 @@ jobs:
# the wrapper (no env isolation, no user-PATH guard, fixed port).
- name: Smoke test (shared wrapper)
run: |
scripts/smoke-local.sh \
"$RUNNER_TEMP/cbm-artifact/codebase-memory-mcp" ${{ matrix.variant }}
scripts/smoke-local.sh "$RUNNER_TEMP/cbm-artifact/codebase-memory-mcp"
env:
CBM_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/cbm-artifact
SMOKE_REQUIRE_UI: "1"

- name: Security audits
run: |
Expand Down Expand Up @@ -195,11 +193,10 @@ jobs:
- name: Extract release artifact
shell: msys2 {0}
run: |
SUFFIX=${{ matrix.variant == 'ui' && '-ui' || '' }}
ARCH=${{ matrix.arch }}
ARTIFACT_DIR="$(cygpath -u "$RUNNER_TEMP")/cbm-artifact"
mkdir -p "$ARTIFACT_DIR"
unzip -o "codebase-memory-mcp${SUFFIX}-windows-${ARCH}.zip" -d "$ARTIFACT_DIR"
unzip -o "codebase-memory-mcp-windows-${ARCH}.zip" -d "$ARTIFACT_DIR"
test -s "$ARTIFACT_DIR/codebase-memory-mcp.exe"
# ONE executable per runtime set: a payload sibling would mean the
# removed launcher split came back.
Expand All @@ -226,7 +223,7 @@ jobs:
shell: msys2 {0}
env:
SMOKE_ARCH: ${{ matrix.arch }}
SMOKE_VARIANT: ${{ matrix.variant }}
SMOKE_REQUIRE_UI: "1"
run: |
export CBM_SMOKE_ARTIFACT_DIR="$(cygpath -u "$RUNNER_TEMP")/cbm-artifact"
bash test-infrastructure/vm/vm-smoke.sh
Expand Down Expand Up @@ -288,9 +285,8 @@ jobs:

- name: Extract release artifact
run: |
SUFFIX=${{ matrix.variant == 'ui' && '-ui' || '' }}
mkdir -p "$RUNNER_TEMP/cbm-artifact"
tar -xzf codebase-memory-mcp${SUFFIX}-linux-${{ matrix.arch }}-portable.tar.gz \
tar -xzf codebase-memory-mcp-linux-${{ matrix.arch }}-portable.tar.gz \
-C "$RUNNER_TEMP/cbm-artifact"
chmod +x "$RUNNER_TEMP/cbm-artifact/codebase-memory-mcp"

Expand All @@ -301,10 +297,10 @@ jobs:
# exactly the phases it most needs to run.
- name: Smoke test (shared wrapper)
run: |
scripts/smoke-local.sh \
"$RUNNER_TEMP/cbm-artifact/codebase-memory-mcp" ${{ matrix.variant }}
scripts/smoke-local.sh "$RUNNER_TEMP/cbm-artifact/codebase-memory-mcp"
env:
CBM_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/cbm-artifact
SMOKE_REQUIRE_UI: "1"

# The -portable binary is what all linux install/update paths now deliver;
# it MUST start on old glibc (Debian 11 / RHEL 8 / Ubuntu 20.04). Runs it
Expand Down
Loading