Skip to content

Recover interrupted MR consolidation jobs #3215

Recover interrupted MR consolidation jobs

Recover interrupted MR consolidation jobs #3215

name: Check BeeAI agents in container
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
jobs:
validate-skills:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Validate agent skills
run: |
pip install skills-ref==0.1.1
for skill_dir in agents_as_skills/*/; do
agentskills validate "$skill_dir"
done
check-in-container:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- target: check-agents-in-container
- target: check-unprivileged-tools-in-container
- target: check-privileged-tools-in-container
- target: check-jira-issue-fetcher-in-container
- target: check-ymir-common-in-container
- target: check-supervisor-in-container
- target: check-sweep-in-container
- target: check-mr-cleanup-in-container
- target: check-api-in-container
- target: check-mcp-install-in-container
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Run ${{ matrix.target }} target
env:
CONTAINER_ENGINE: podman
TEST_IMAGE: beeai-tests
TEST_IMAGE_C9S: beeai-tests-c9s
run: make ${{ matrix.target }}
smoke-test-mcp-containerfile:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Build MCP gateway container
run: |
podman build --no-cache -f Containerfile.mcp -t mcp-gateway-test:pr .
- name: Test beeai_framework import
run: |
podman run --rm mcp-gateway-test:pr python3.13 -c "from beeai_framework.adapters.mcp.serve.server import MCPServer; print('✓ beeai_framework import successful')"
- name: Test privileged gateway module
run: |
podman run --rm mcp-gateway-test:pr python3.13 -c "from ymir.tools.privileged.gateway import main; print('✓ privileged gateway import successful')"
- name: Test unprivileged gateway module
run: |
podman run --rm mcp-gateway-test:pr python3.13 -c "from ymir.tools.unprivileged.gateway import main; print('✓ unprivileged gateway import successful')"
smoke-test-sweep-containerfile:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Set up Podman
run: |
sudo apt-get update
sudo apt-get install -y podman
podman --version
- name: Build sweep container
run: |
podman build --no-cache -f Containerfile.sweep -t sweep-test:pr .
# Containerfile.sweep copies only a curated subset of ymir/* (sweep, common,
# supervisor, tools) onto PYTHONPATH rather than pip-installing the package.
# The slim image's import graph is therefore an unenforced contract: if a
# package-structure change makes the sweep's imports reach outside that
# subset (or pull in a dep this Containerfile doesn't install), the image
# breaks only at runtime. These imports turn that into a build-time failure.
- name: Test sweep strategy imports
run: |
podman run --rm sweep-test:pr python3 -c "from ymir.sweep.y_stream import YStreamSweep; from ymir.tools.privileged.jira import CheckCveTriageEligibilityTool; print('✓ sweep strategy + eligibility tool import successful')"
- name: Test sweep CLI entrypoint
run: |
podman run --rm sweep-test:pr python3 -m ymir.sweep --help