Skip to content

Add ADK

Add ADK #3

Workflow file for this run

name: Test MCP Docker Builds
on:
push:
branches: [ main, feature/* ]
paths:
- 'obol-adk/dockerfiles/**'
- 'obol-adk/obol-agent-docker/**'
- 'obol-adk/Dockerfile'
- 'obol-adk/requirements.txt'
- 'obol-adk/main.py'
- '.github/workflows/test-mcp-builds.yml'
pull_request:
branches: [ main ]
paths:
- 'obol-adk/dockerfiles/**'
- 'obol-adk/obol-agent-docker/**'
- 'obol-adk/Dockerfile'
- 'obol-adk/requirements.txt'
- 'obol-adk/main.py'
- '.github/workflows/test-mcp-builds.yml'
jobs:
test-mcp-filesystem-pull:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Pull official MCP filesystem image
run: |
docker pull mcp/filesystem
- name: Test official filesystem MCP image
run: |
# Test that the image was pulled successfully
docker images | grep mcp/filesystem
# Test basic functionality
echo "Testing official MCP filesystem server"
test-kubernetes-mcp:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build kubernetes MCP image
run: |
docker build -f obol-adk/dockerfiles/Dockerfile.kubernetes \
-t kubernetes-mcp:test \
obol-adk/dockerfiles
- name: Test kubernetes MCP image
run: |
# Test that the image was built successfully
docker images | grep kubernetes-mcp
# Test that the required package is installed
docker run --rm kubernetes-mcp:test npm list -g mcp-server-kubernetes
test-foundry-mcp:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build foundry MCP image
run: |
docker build -f obol-adk/dockerfiles/Dockerfile.foundry \
-t foundry-mcp:test \
obol-adk/dockerfiles
- name: Test foundry MCP image
run: |
# Test that the image was built successfully
docker images | grep foundry-mcp
# Test that foundry tools are available
docker run --rm foundry-mcp:test forge --version
# Test that the MCP server was built
docker run --rm foundry-mcp:test ls -la /app/dist/
test-obol-mcp:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build obol MCP image
run: |
docker build -f obol-adk/obol-agent-docker/Dockerfile \
-t obol-mcp:test \
obol-adk/obol-agent-docker
- name: Test obol MCP image
run: |
# Test that the image was built successfully
docker images | grep obol-mcp
# Test that required Python packages are installed
docker run --rm obol-mcp:test python -c "import fastmcp, httpx, uvicorn; print('All packages imported successfully')"
# Test that server file exists
docker run --rm obol-mcp:test ls -la /server/server.py
test-obol-adk:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build obol-adk image
run: |
docker build -f obol-adk/Dockerfile \
-t obol-adk:test \
obol-adk
- name: Test obol-adk image
run: |
# Test that the image was built successfully
docker images | grep obol-adk
# Test that Google ADK is installed
docker run --rm obol-adk:test python -c "import google.adk; print('Google ADK imported successfully')"
# Test that main.py exists
docker run --rm obol-adk:test ls -la /app/main.py
integration-test:
runs-on: ubuntu-latest
needs: [test-mcp-filesystem-pull, test-kubernetes-mcp, test-foundry-mcp, test-obol-mcp, test-obol-adk]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Pull official MCP and build custom images
run: |
# Pull official MCP filesystem
docker pull mcp/filesystem &
# Build custom images in parallel
docker build -f obol-adk/dockerfiles/Dockerfile.kubernetes -t kubernetes-mcp:test obol-adk/dockerfiles &
docker build -f obol-adk/dockerfiles/Dockerfile.foundry -t foundry-mcp:test obol-adk/dockerfiles &
docker build -f obol-adk/obol-agent-docker/Dockerfile -t obol-mcp:test obol-adk/obol-agent-docker &
docker build -f obol-adk/Dockerfile -t obol-adk:test obol-adk &
wait
- name: Verify all images
run: |
echo "=== Available Docker Images ==="
docker images | grep -E "(mcp/filesystem|kubernetes-mcp|foundry-mcp|obol-mcp|obol-adk)" | grep -E "(latest|test)"
echo "=== Image Sizes ==="
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" | grep -E "(mcp/filesystem|test)"
- name: Test official MCP filesystem connection
run: |
# Test that official MCP filesystem can be run
echo "Testing official MCP filesystem server"
docker run --rm mcp/filesystem --help || echo "Filesystem MCP server available"
- name: Clean up test images
if: always()
run: |
docker image rm -f kubernetes-mcp:test foundry-mcp:test obol-mcp:test obol-adk:test || true