Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions OneBranchPipelines/stages/build-linux-single-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ stages:
name: Python-1ES-pool
demands:
- imageOverride -equals PYTHON-1ES-UB2404
# Extended timeout for multi-version builds + testing (5 Python versions × build + test time)
timeoutInMinutes: 120
# Six serial build/test cycles exceed two hours under QEMU-based ARM64 emulation.
timeoutInMinutes: 180

variables:
# Disable BinSkim for Linux - requires ICU libraries not available in manylinux/musllinux containers
Expand Down Expand Up @@ -433,6 +433,8 @@ stages:
'
fi

# Avoid accumulating six copies of the test tree on emulated ARM64 jobs.
docker exec build-$(LINUX_TAG)-$(ARCH) $SHELL_EXE -lc "rm -rf /test_isolated_${PYBIN}"
echo "✓ Build and test complete for $PYBIN"
done

Expand All @@ -448,7 +450,7 @@ stages:
- script: |
set -euo pipefail

# Copy all wheels (5 Python versions) to output directory
# Copy all wheels (6 Python versions) to output directory
echo "Copying wheels to host..."
docker cp build-$(LINUX_TAG)-$(ARCH):/workspace/dist/. "$(ob_outputDirectory)/wheels/" || echo "No wheels found"

Expand Down
25 changes: 9 additions & 16 deletions OneBranchPipelines/stages/build-macos-single-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@ stages:
# =========================
# BUILD TOOLS
# =========================
# CMake = cross-platform build system generator (needed for C++ compilation)
# Uninstall first to ensure clean version (avoid conflicts with pre-installed CMake)
# Install all Homebrew tooling in one transaction, matching PR validation.
# Do not run brew update: hosted runners already provide bottle metadata,
# while updating can select formulae that compile Go and Lima from source.
- script: |
brew update
brew uninstall cmake --ignore-dependencies || echo "CMake not installed"
brew install cmake
displayName: 'Install CMake'
brew install cmake docker colima
displayName: 'Install build & container tooling (Homebrew)'

# =========================
# PYTHON DEPENDENCIES
Expand Down Expand Up @@ -133,22 +133,15 @@ stages:
TargetFolder: '$(ob_outputDirectory)/bindings/macOS'
displayName: 'Copy .so files'

# Install Docker CLI and Colima (macOS Docker runtime)
# Start Colima (macOS Docker runtime). Tooling is installed above so the
# 15-minute timeout covers only VM startup, not Homebrew compilation.
# Colima = lightweight Docker Desktop alternative using macOS virtualization
# vz = native macOS virtualization (faster, only works on M1+)
# qemu = cross-platform emulator (slower, works on Intel Macs)
# 4 CPU cores + 8GB RAM needed for SQL Server container
- script: |
brew update
brew install docker colima
colima start --vm-type vz --cpu 4 --memory 8 || {
echo "vz VM failed, trying qemu..."
colima start --vm-type qemu --cpu 4 --memory 8
}
sleep 30
colima start --cpu 4 --memory 8 --disk 50
docker context use colima >/dev/null || true
docker version
displayName: 'Install and start Docker (Colima)'
displayName: 'Start Docker (Colima)'
timeoutInMinutes: 15

# =========================
Expand Down
Loading