Co-authored-by: Alexis Tacnet <alexis@mistral.ai>
Co-authored-by: Clément Drouin <clement.drouin@mistral.ai>
Co-authored-by: Guillaume LE GOFF <guillaume.lgf@gmail.com>
Co-authored-by: Lucas Marandat <31749711+lucasmrdt@users.noreply.github.com>
Co-authored-by: Maxime Dolores <maxime.dolores@ext.mistral.ai>
Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai>
Co-authored-by: Quentin <quentin.torroba@mistral.ai>
Co-authored-by: Val <102326092+vdeva@users.noreply.github.com>
Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com>
Co-authored-by: p.vezia <166131032+le-codeur-rapide@users.noreply.github.com>
Co-authored-by: Hiba Chaabnia <Hiba-Chaabnia@users.noreply.github.com>
Co-authored-by: Nikhil Bhima <nikhilbhima@users.noreply.github.com>
Co-authored-by: Nkipohcs <Nkipohcs@users.noreply.github.com>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
Mathias Gesbert 2026-06-04 18:26:35 +02:00 committed by GitHub
parent ad0d5c9520
commit 3f8487f761
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
197 changed files with 10819 additions and 2830 deletions

View file

@ -29,13 +29,16 @@ jobs:
{"runner": "windows-2022", "os": "windows", "arch": "x86_64"}
]
}'
# TODO: Re-enable macOS standalone artifact smoke tests once the PyInstaller
# binaries are Developer ID signed and notarized. The direct GitHub zip
# download path gets Gatekeeper-assessed via quarantine and currently rejects
# ad-hoc signed binaries, even though vibe-acp continues to work when bundled
# through the VS Code extension.
smoke_matrix='{
"include": [
{"runner": "ubuntu-24.04", "os": "linux", "arch": "x86_64"},
{"runner": "ubuntu-24.04", "os": "linux", "arch": "x86_64", "tag": "old-glibc", "container": "almalinux:8"},
{"runner": "ubuntu-24.04-arm", "os": "linux", "arch": "aarch64"},
{"runner": "macos-15", "os": "darwin", "arch": "aarch64"},
{"runner": "macos-15-intel", "os": "darwin", "arch": "x86_64"},
{"runner": "windows-latest", "os": "windows", "arch": "x86_64"}
]
}'
@ -84,27 +87,39 @@ jobs:
- name: Sync dependencies
run: uv sync --no-dev --group build
- name: Build with PyInstaller
- name: Build ACP with PyInstaller
run: uv run --no-dev --group build pyinstaller vibe-acp.spec
- name: Build CLI with PyInstaller
run: uv run --no-dev --group build pyinstaller vibe.spec
- name: Clear executable stack on bundled libraries
if: ${{ matrix.os == 'linux' }}
run: |
find dist/vibe-acp-dir/_internal -name '*.so*' -type f -print0 \
| xargs -0 -I{} patchelf --clear-execstack {}
patchelf --clear-execstack dist/vibe-acp-dir/vibe-acp || true
find dist/vibe-dir/_internal -name '*.so*' -type f -print0 \
| xargs -0 -I{} patchelf --clear-execstack {}
patchelf --clear-execstack dist/vibe-dir/vibe || true
- name: Get package version
id: get_version
shell: bash
run: echo "version=$(uv version | cut -d' ' -f2)" >> $GITHUB_OUTPUT
- name: Upload binary as artifact
- name: Upload ACP binary as artifact
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: vibe-acp-${{ matrix.os }}-${{ matrix.arch }}-${{ steps.get_version.outputs.version }}
path: dist/vibe-acp-dir/
- name: Upload CLI binary as artifact
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: vibe-${{ matrix.os }}-${{ matrix.arch }}-${{ steps.get_version.outputs.version }}
path: dist/vibe-dir/
nix-build:
needs: configure
name: "Nix build and upload: ${{ matrix.os }}-${{ matrix.arch }}"
@ -159,16 +174,23 @@ jobs:
run: yum install -y python3.11 python3.11-pip
- name: Install smoke test deps
run: ${{ matrix.container && 'python3.11' || 'python' }} -m pip install agent-client-protocol==0.9.0
run: ${{ matrix.container && 'python3.11' || 'python' }} -m pip install agent-client-protocol==0.10.1
- name: Download artifact
- name: Download ACP artifact
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
with:
pattern: vibe-acp-${{ matrix.os }}-${{ matrix.arch }}-*
merge-multiple: true
path: dist/vibe-acp-dir
- name: Run smoke tests
- name: Download CLI artifact
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
with:
pattern: vibe-${{ matrix.os }}-${{ matrix.arch }}-*
merge-multiple: true
path: dist/vibe-dir
- name: Run ACP smoke tests
run: ${{ matrix.container && 'python3.11' || 'python' }} tests/acp/smoke_binary.py dist/vibe-acp-dir
attach-to-release:
@ -191,6 +213,9 @@ jobs:
if [ -f "$dir/vibe-acp" ] || [ -f "$dir/vibe-acp.exe" ]; then
chmod -f +x "$dir/vibe-acp" 2>/dev/null || true
(cd "$dir" && zip -r "../../release-assets/${name}.zip" .)
elif [ -f "$dir/vibe" ] || [ -f "$dir/vibe.exe" ]; then
chmod -f +x "$dir/vibe" 2>/dev/null || true
(cd "$dir" && zip -r "../../release-assets/${name}.zip" .)
fi
done