Docker build updates #15
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: Build Binaries | |
| on: | |
| push: | |
| branches: ['main'] | |
| tags: ['v*'] | |
| pull_request: | |
| branches: ['main'] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-24.04 | |
| name: linux | |
| arch: amd64 | |
| - os: ubuntu-24.04-arm | |
| name: linux | |
| arch: arm64 | |
| - os: windows-latest | |
| name: windows | |
| arch: amd64 | |
| - os: macos-latest | |
| name: macos | |
| arch: arm64 | |
| - os: macos-15-intel | |
| name: macos | |
| arch: amd64 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Build binary (Linux in Ubuntu 25.10 container) | |
| if: matrix.name == 'linux' | |
| shell: bash | |
| run: | | |
| # Docker container with Ubuntu 25.10 and build the binary inside it | |
| rm -rf dist/* | |
| docker run --rm \ | |
| -v "$PWD:/workspace" \ | |
| -w /workspace \ | |
| ubuntu:25.10 \ | |
| bash -c " | |
| set -e | |
| echo 'Setting up Ubuntu 25.10 build environment...' | |
| apt-get update -y | |
| apt-get install -y --fix-missing curl python3 python3-pip python3-venv binutils | |
| # Install uv (Python package manager) | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| export PATH=\"\$HOME/.local/bin:\$PATH\" | |
| echo 'Building binary with uv...' | |
| uv sync | |
| uv run build.py | |
| echo 'Build completed. Checking output:' | |
| ls -la dist/ | |
| " | |
| - name: Setup uv for Windows/macOS | |
| if: matrix.name != 'linux' | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Build binary (Windows/macOS native) | |
| if: matrix.name != 'linux' | |
| shell: bash | |
| run: | | |
| rm -rf dist/* | |
| uv sync | |
| uv run build.py | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: perfecto-mcp-${{ matrix.name }}-${{ matrix.arch }} | |
| path: dist/ |