Files
openclaw/scripts/e2e/lib/release-plugin-marketplace/scenario.sh
2026-05-13 20:57:44 +01:00

103 lines
4.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
trap "" PIPE
export TERM=xterm-256color
export NO_COLOR=1
source scripts/lib/openclaw-e2e-instance.sh
openclaw_e2e_eval_test_state_from_b64 "${OPENCLAW_TEST_STATE_SCRIPT_B64:?missing OPENCLAW_TEST_STATE_SCRIPT_B64}"
openclaw_e2e_install_trash_shim
export NPM_CONFIG_PREFIX="$HOME/.npm-global"
export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
export npm_config_loglevel=error
export npm_config_fund=false
export npm_config_audit=false
dump_debug_logs() {
local status="$1"
echo "release plugin marketplace failed with exit code $status" >&2
openclaw_e2e_dump_logs \
/tmp/openclaw-release-plugin-marketplace-install.log \
/tmp/openclaw-release-plugin-marketplace-onboard.log \
/tmp/openclaw-release-plugin-marketplace-list.json \
/tmp/openclaw-release-plugin-marketplace-install-plugin.log \
/tmp/openclaw-release-plugin-marketplace-cli-v1.log \
/tmp/openclaw-release-plugin-marketplace-update-dry-run.log \
/tmp/openclaw-release-plugin-marketplace-update.log \
/tmp/openclaw-release-plugin-marketplace-cli-v2.log \
/tmp/openclaw-release-plugin-marketplace-uninstall.log \
/tmp/openclaw-release-plugin-marketplace-cli-after-uninstall.log \
"$HOME/.openclaw/plugins/installs.json"
}
trap 'status=$?; dump_debug_logs "$status"; exit "$status"' ERR
openclaw_e2e_install_package /tmp/openclaw-release-plugin-marketplace-install.log
command -v openclaw >/dev/null
openclaw onboard \
--non-interactive \
--accept-risk \
--flow quickstart \
--mode local \
--auth-choice skip \
--skip-daemon \
--skip-ui \
--skip-channels \
--skip-skills \
--skip-health >/tmp/openclaw-release-plugin-marketplace-onboard.log 2>&1
marketplace_root="$HOME/.claude/plugins/marketplaces/release-fixture-marketplace"
mkdir -p "$HOME/.claude/plugins" "$marketplace_root/.claude-plugin"
node scripts/e2e/lib/release-scenarios/write-cli-plugin.mjs \
"$marketplace_root/plugins/release-marketplace-plugin" \
release-marketplace-plugin \
0.0.1 \
release.marketplace.v1 \
"Release Marketplace Plugin" \
release-market \
"release-marketplace-plugin:v1"
node scripts/e2e/lib/release-scenarios/write-cli-plugin.mjs \
"$marketplace_root/plugins/release-marketplace-other" \
release-marketplace-other \
0.0.1 \
release.marketplace.other \
"Release Marketplace Other" \
release-market-other \
"release-marketplace-other:v1"
node scripts/e2e/lib/release-scenarios/write-marketplace.mjs \
"$marketplace_root" \
release-fixtures \
release-marketplace-plugin \
release-marketplace-other
openclaw plugins marketplace list release-fixtures --json >/tmp/openclaw-release-plugin-marketplace-list.json
node scripts/e2e/lib/release-scenarios/assertions.mjs assert-file-contains /tmp/openclaw-release-plugin-marketplace-list.json release-marketplace-plugin
openclaw plugins install release-marketplace-plugin@release-fixtures >/tmp/openclaw-release-plugin-marketplace-install-plugin.log 2>&1
openclaw release-market ping >/tmp/openclaw-release-plugin-marketplace-cli-v1.log 2>&1
node scripts/e2e/lib/release-scenarios/assertions.mjs assert-file-contains /tmp/openclaw-release-plugin-marketplace-cli-v1.log "release-marketplace-plugin:v1"
node scripts/e2e/lib/release-scenarios/write-cli-plugin.mjs \
"$marketplace_root/plugins/release-marketplace-plugin" \
release-marketplace-plugin \
0.0.2 \
release.marketplace.v2 \
"Release Marketplace Plugin" \
release-market \
"release-marketplace-plugin:v2"
openclaw plugins update release-marketplace-plugin --dry-run >/tmp/openclaw-release-plugin-marketplace-update-dry-run.log 2>&1
openclaw plugins update release-marketplace-plugin >/tmp/openclaw-release-plugin-marketplace-update.log 2>&1
openclaw release-market ping >/tmp/openclaw-release-plugin-marketplace-cli-v2.log 2>&1
node scripts/e2e/lib/release-scenarios/assertions.mjs assert-file-contains /tmp/openclaw-release-plugin-marketplace-cli-v2.log "release-marketplace-plugin:v2"
openclaw plugins uninstall release-marketplace-plugin --force >/tmp/openclaw-release-plugin-marketplace-uninstall.log 2>&1
if openclaw release-market ping >/tmp/openclaw-release-plugin-marketplace-cli-after-uninstall.log 2>&1; then
echo "release-market CLI should be gone after uninstall" >&2
exit 1
fi
node scripts/e2e/lib/release-scenarios/assertions.mjs assert-plugin-uninstalled release-marketplace-plugin release-market
echo "Release plugin marketplace scenario passed."