github action #124 #253
This file contains 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: CI Build | |
on: | |
push: | |
branches: [main, dev] | |
pull_request: | |
branches: [main] | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
include: | |
- os: windows-latest | |
c_compiler: cl | |
cpp_compiler: cl | |
- os: ubuntu-latest | |
c_compiler: gcc | |
cpp_compiler: g++ | |
- os: macos-latest | |
c_compiler: clang | |
cpp_compiler: clang++ | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
### Ubuntu Dependencies | |
- name: Install dependencies (Ubuntu) | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build \ | |
qt6-base-dev qt6-tools-dev qt6-tools-dev-tools \ | |
qt6-l10n-tools libgl1-mesa-dev libglu1-mesa-dev | |
echo "CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6" >> $GITHUB_ENV | |
### macOS Dependencies | |
- name: Install dependencies (macOS) | |
if: matrix.os == 'macos-latest' | |
run: | | |
brew install ninja qt | |
echo "CMAKE_PREFIX_PATH=$(brew --prefix qt)" >> $GITHUB_ENV | |
### Windows Setup | |
- name: Install dependencies (Windows) | |
if: matrix.os == 'windows-latest' | |
shell: powershell | |
run: | | |
choco install visualstudio2022buildtools -y | |
choco install ninja -y | |
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y | |
choco install python3 -y | |
choco install llvm -y | |
- name: Validate and Add Missing Tools to PATH (Windows) | |
if: matrix.os == 'windows-latest' | |
shell: powershell | |
run: | | |
$gperfPath = "C:\ProgramData\chocolatey\bin\gperf.exe" | |
$clangPath = "C:\Program Files\LLVM\bin\clang.exe" | |
if (-not (Test-Path $gperfPath)) { | |
Write-Host "gperf is not available. Reinstalling..." | |
choco install gperf -y | |
} else { | |
Write-Host "gperf found at $gperfPath" | |
} | |
if (-not (Test-Path $clangPath)) { | |
Write-Host "clang is not available. Check LLVM installation." | |
exit 1 | |
} else { | |
Write-Host "clang found at $clangPath" | |
} | |
# Add tools to PATH | |
$env:PATH += ";C:\ProgramData\chocolatey\bin;C:\Program Files\LLVM\bin" | |
[System.Environment]::SetEnvironmentVariable("PATH", $env:PATH, [System.EnvironmentVariableTarget]::Process) | |
# Restore Qt Source Cache and Build Workflow Continues... | |
# <Unchanged from previous sections for Windows-specific Qt source and build steps> |