2020 runs-on : ${{ matrix.os }}
2121 timeout-minutes : 120
2222 strategy :
23+ fail-fast : false
2324 matrix :
2425 os :
2526 - ubuntu-latest
@@ -33,22 +34,17 @@ jobs:
3334 with :
3435 submodules : true
3536
36- - name : Build on Linux (x86_64)
37- if : runner.os == 'Linux' && runner.arch == 'X64'
38- shell : bash
39- run : |
40- set -xeuo pipefail
41- sudo bash -c 'apt-get update; apt-get install -y lazarus' >/dev/null
42- instantfpc .github/workflows/make.pas
43-
44- - name : Build on Linux (AArch64)
45- if : runner.os == 'Linux' && runner.arch == 'ARM64'
37+ # ─── Linux (unified for x86_64 and AArch64) ────────────────────────
38+ - name : Build on Linux
39+ if : runner.os == 'Linux'
4640 shell : bash
4741 run : |
4842 set -xeuo pipefail
4943 sudo bash -c 'apt-get update; apt-get install -y lazarus' >/dev/null
44+ fpc -iV
5045 instantfpc .github/workflows/make.pas
5146
47+ # ─── macOS ──────────────────────────────────────────────────────────
5248 - name : Install Lazarus on macOS
5349 if : runner.os == 'macOS'
5450 uses : gcarreno/setup-lazarus@v3
@@ -61,30 +57,37 @@ jobs:
6157 shell : bash
6258 run : |
6359 set -xeuo pipefail
60+ fpc -iV
6461 instantfpc .github/workflows/make.pas
6562
63+ # ─── Windows ────────────────────────────────────────────────────────
6664 - name : Build on Windows
6765 if : runner.os == 'Windows'
6866 shell : powershell
6967 run : |
70- $ErrorActionPreference = 'stop '
68+ $ErrorActionPreference = 'Stop '
7169 Set-PSDebug -Strict
7270
7371 Write-Host "Installing Lazarus and OpenSSL 1.1 via Chocolatey..."
74- choco upgrade chocolatey -y
75- choco install lazarus -y
76- choco install openssl.light --version=1.1.1.20181020 -y
72+ choco install lazarus -y --no-progress
73+ choco install openssl.light --version=1.1.1.20181020 -y --no-progress
7774
78- Write-Host "Verifying installed packages..."
79- choco list
75+ # Discover FPC bin path dynamically
76+ $fpcDir = Get-ChildItem 'C:\Lazarus\fpc' -Directory | Select-Object -First 1
77+ $env:Path += ";C:\Lazarus;$($fpcDir.FullName)\bin\x86_64-win64"
8078
81- # Lazarus installs to C:\Lazarus by default
82- # Add Lazarus and OpenSSL paths for instantfpc
83- $env:Path += ';C:\Lazarus;C:\Lazarus\fpc\3.2.2\bin\x86_64-win64;C:\ProgramData\chocolatey\lib\openssl.light\tools'
79+ # Add OpenSSL to PATH (check known locations)
80+ $opensslPaths = @(
81+ 'C:\ProgramData\chocolatey\lib\openssl.light\tools',
82+ 'C:\Program Files\OpenSSL\bin',
83+ 'C:\Program Files\OpenSSL-Win64\bin'
84+ )
85+ foreach ($p in $opensslPaths) {
86+ if (Test-Path $p) { $env:Path += ";$p" }
87+ }
8488
85- Write-Host "Checking lazbuild and instantfpc availability..."
86- Get-Command lazbuild
87- Get-Command instantfpc
89+ Write-Host "FPC version:"
90+ fpc -iV
8891
8992 Write-Host "Building make.pas..."
9093 instantfpc .github/workflows/make.pas
0 commit comments