Skip to content

chore: bump version to 9.11.2 (#4909) #5085

chore: bump version to 9.11.2 (#4909)

chore: bump version to 9.11.2 (#4909) #5085

Workflow file for this run

name: Vcpkg build
on:
push:
branches:
- master
- 'releases/**'
pull_request:
branches:
- '*'
env:
VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
cancel-in-progress: true
jobs:
job:
name: ${{ matrix.os }}-${{ matrix.preset }}-${{ github.workflow }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14, macos-15-intel, windows-latest]
preset: [vcpkg-debug, vcpkg-release]
steps:
- uses: actions/checkout@v6
with:
submodules: false
fetch-depth: 0
- name: Init submodules with retry
shell: bash
run: |
git config --global --add safe.directory "$(pwd)"
for attempt in 1 2 3 4 5; do
if git submodule update --init --recursive; then
echo "Submodule init succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "Submodule init failed after 5 attempts"
exit 1
- uses: lukka/get-cmake@latest
- uses: ilammy/msvc-dev-cmd@v1
- name: Install build dependencies (Linux only)
if: runner.os == 'Linux'
run: |
sudo apt-get update || true
sudo apt-get install -y ninja-build autoconf automake autoconf-archive
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Clear vcpkg temp files and update
shell: bash
run: |
rm -rf ext_libs/vcpkg/downloads
rm -rf ext_libs/vcpkg/buildtrees
git submodule update --init ext_libs/vcpkg
- name: Setup vcpkg
shell: bash
run: |
if [ "$RUNNER_OS" = "Windows" ]; then
bootstrap="$VCPKG_ROOT/bootstrap-vcpkg.bat"
else
bootstrap="$VCPKG_ROOT/bootstrap-vcpkg.sh"
fi
for attempt in 1 2 3; do
if "$bootstrap"; then
echo "vcpkg bootstrap succeeded on attempt $attempt"
exit 0
fi
echo "Attempt $attempt failed, retrying in 15s..."
sleep 15
done
echo "vcpkg bootstrap failed after 3 attempts"
exit 1
env:
VCPKG_ROOT: ${{ github.workspace }}/ext_libs/vcpkg
- name: Configure with CMake (with retry)
env:
VCPKG_ROOT: ${{github.workspace}}/ext_libs/vcpkg
shell: bash
run: |
max_attempts=3
attempt=1
until cmake --preset "${{ matrix.preset }}"; do
if [ $attempt -ge $max_attempts ]; then
echo "CMake configure failed after $max_attempts attempts"
exit 1
fi
echo "CMake configure failed (attempt $attempt/$max_attempts), retrying in 30 seconds..."
attempt=$((attempt + 1))
sleep 30
done
- name: Build
run: cmake --build --preset "${{ matrix.preset }}"
- name: Test
run: ctest --preset "${{ matrix.preset }}"
- name: Test flatbuffers
if: runner.os == 'Linux'
run: python3 test/run_tests.py -f --epsilon 1e-3 --for_flatbuffers --clean_dirty
- name: Package Windows binaries
if: runner.os == 'Windows' && matrix.preset == 'vcpkg-release'
shell: bash
run: |
mkdir -p artifact
cp build/vowpalwabbit/cli/vw.exe artifact/vw.exe
# Copy required DLLs from vcpkg
if [ -d "build/vcpkg_installed/x64-windows/bin" ]; then
cp build/vcpkg_installed/x64-windows/bin/*.dll artifact/ || true
fi
# List what we packaged
ls -lh artifact/
- name: Test packaged artifact
if: runner.os == 'Windows' && matrix.preset == 'vcpkg-release'
run: |
python3 test/run_tests.py -f --clean_dirty -E 0.01 --skip_spanning_tree_tests `
--vw_bin_path ${{ github.workspace }}/artifact/vw.exe
- uses: actions/upload-artifact@v4
if: runner.os == 'Windows' && matrix.preset == 'vcpkg-release'
with:
name: vw-${{ matrix.os }}-${{ github.sha }}
path: artifact/
retention-days: ${{ github.event_name == 'pull_request' && 7 || 90 }}