Recover interrupted MR consolidation jobs #3215
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |