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
17 changes: 12 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-22.04, macos-14]
# macOS 14 Sonoma will be deprecated on 2026-07-06 and unsupported on 2026-11-02
# https://github.com/actions/runner-images/issues/13518
# but it is the last macOS image that comes with Mono preinstalled
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
os: [windows-latest, ubuntu-latest, macos-latest]

steps:
# Prerequisites
Expand All @@ -35,6 +31,17 @@ jobs:
with:
dotnet-version: '8.0.x'

# Setup Mono (the runner images no longer include it)
- name: Install Mono
if: matrix.os != 'windows-latest'
run: |
if [ "$RUNNER_OS" = Linux ]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "$HOMEBREW_PREFIX/bin" >> "$GITHUB_PATH"
fi
brew install mono
mono --version

# Build & package
- name: Build
run: pwsh make.ps1
Expand Down
4 changes: 2 additions & 2 deletions .vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
displayName: Linux (Ubuntu)
timeoutInMinutes: 180
pool:
vmImage: ubuntu-22.04
vmImage: ubuntu-latest
steps:
- template: eng/steps.yml
parameters:
Expand All @@ -30,7 +30,7 @@ jobs:
displayName: macOS
timeoutInMinutes: 180
pool:
vmImage: macOS-14
vmImage: macOS-latest
steps:
- template: eng/steps.yml
parameters:
Expand Down
37 changes: 11 additions & 26 deletions eng/steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,35 +39,20 @@ steps:
packageType: 'runtime'
version: '8.0.x'

- task: UseDotNet@2
displayName: Install .NET 6.0 runtime for testing
inputs:
packageType: 'runtime'
version: '6.0.x'

# Set Mono version on macOS
- ${{ if eq(parameters.os, 'macOS') }}:
- task: Bash@3
displayName: Set Mono Version
inputs:
targetType: inline
script: |
# use Mono 6.4.0 version
SYMLINK=6.4.0
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
# Setup Mono (the runner images no longer include it)
- ${{ if ne(parameters.os, 'Windows') }}:
- bash: |
if [ "${{ parameters.os }}" = Linux ]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "##vso[task.prependpath]$HOMEBREW_PREFIX/bin"
fi
brew install mono
mono --version
displayName: Install Mono

# Dump version info
- task: PowerShell@2
- script: dotnet --info
displayName: Version Information
inputs:
targetType: inline
script: |
dotnet --info
try { msbuild -version } catch { echo "msbuild not found" }
try { mono --version } catch { echo "mono not found" }

- powershell: ./make.ps1
displayName: Build
Expand Down
Loading