Skip to content

feat: add --port flag to azlin for bastion tunnel reuse (#2897) #1123

feat: add --port flag to azlin for bastion tunnel reuse (#2897)

feat: add --port flag to azlin for bastion tunnel reuse (#2897) #1123

Workflow file for this run

name: Claude Code Plugin Test
on:
push:
branches:
- main
- feat/issue-1948-plugin-architecture
pull_request:
branches:
- main
jobs:
test-plugin:
runs-on: ubuntu-latest
# NOTE: This test requires ANTHROPIC_API_KEY to be set in GitHub secrets
# To enable: Settings > Secrets > Actions > New repository secret
# Name: ANTHROPIC_API_KEY
# Value: Your Anthropic API key
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install pipx and uv
run: |
python -m pip install --upgrade pip
pip install pipx
pipx install uv
- name: Install Claude Code CLI
run: |
npm install -g @anthropic-ai/claude-code
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- name: Install test dependencies (node-pty)
run: |
cd tests/agentic
npm install
- name: Install amplihack from branch
run: |
# For PRs, use the head branch; for pushes, use the ref name
BRANCH="${{ github.head_ref || github.ref_name }}"
echo "Installing from branch: $BRANCH"
uvx --refresh --from "git+https://github.com/${{ github.repository }}@${BRANCH}" amplihack --help
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- name: Verify plugin deployment
run: |
ls -lh ~/.amplihack/.claude/AMPLIHACK.md || echo "AMPLIHACK.md not found"
find ~/.amplihack/.claude/skills -maxdepth 1 -type d | wc -l || echo "Skills directory not found"
cat ~/.amplihack/.claude/.claude-plugin/plugin.json || echo "plugin.json not found"
- name: Run PTY test
run: |
cd tests/agentic
node test-claude-plugin-pty.js
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
# Continue even if test fails (for debugging)
continue-on-error: true
- name: Upload test evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: plugin-test-evidence
path: tests/agentic/evidence/
retention-days: 7
- name: Upload test results
if: always()
run: |
if [ -d tests/agentic/evidence ]; then
echo "## Test Evidence" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
for report in tests/agentic/evidence/*/REPORT.md; do
if [ -f "$report" ]; then
echo "### $(basename $(dirname $report))" >> $GITHUB_STEP_SUMMARY
cat "$report" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
fi
done
fi
# Alternative: Shell-based test (no node-pty compilation needed)
test-plugin-shell:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pipx
pipx install uv
sudo apt-get update
sudo apt-get install -y expect
- name: Run shell-based test
run: |
cd tests/agentic
chmod +x run-plugin-test.sh
./run-plugin-test.sh || echo "Shell test failed (expected in CI without API key)"
env:
PLUGIN_BRANCH: ${{ github.head_ref || github.ref_name }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
continue-on-error: true
- name: Upload shell test evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: shell-test-evidence
path: tests/agentic/evidence/
retention-days: 7