make.yml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. name: Make
  2. on:
  3. schedule:
  4. - cron: '0 0 1 * *'
  5. push:
  6. branches:
  7. - "**"
  8. pull_request:
  9. branches:
  10. - master
  11. - main
  12. concurrency:
  13. group: ${{ github.workflow }}-${{ github.ref }}
  14. cancel-in-progress: true
  15. jobs:
  16. build:
  17. runs-on: ${{ matrix.os }}
  18. timeout-minutes: 120
  19. strategy:
  20. matrix:
  21. os:
  22. - ubuntu-latest
  23. - windows-latest
  24. steps:
  25. - name: Checkout
  26. uses: actions/checkout@v6
  27. with:
  28. submodules: true
  29. - name: Build on Linux
  30. if: runner.os == 'Linux'
  31. shell: bash
  32. run: |
  33. set -xeuo pipefail
  34. sudo bash -c 'apt-get update; apt-get install -y lazarus' >/dev/null
  35. instantfpc -Fu/usr/lib/lazarus/*/components/lazutils .github/workflows/make.pas
  36. - name: Build on Windows
  37. if: runner.os == 'Windows'
  38. shell: powershell
  39. run: |
  40. $ErrorActionPreference = 'stop'
  41. Set-PSDebug -Strict
  42. Write-Host "Installing Lazarus and OpenSSL 1.1 via Chocolatey..."
  43. choco upgrade chocolatey -y
  44. choco install lazarus -y
  45. choco install openssl.light --version=1.1.1.20181020 -y
  46. Write-Host "Verifying installed packages..."
  47. choco list
  48. # Lazarus installs to C:\Lazarus by default
  49. # Add Lazarus and OpenSSL paths for instantfpc
  50. $env:Path += ';C:\Lazarus;C:\Lazarus\fpc\3.2.2\bin\x86_64-win64;C:\ProgramData\chocolatey\lib\openssl.light\tools'
  51. Write-Host "Checking lazbuild and instantfpc availability..."
  52. Get-Command lazbuild
  53. Get-Command instantfpc
  54. Write-Host "Building make.pas..."
  55. instantfpc '-FuC:\Lazarus\components\lazutils' .github/workflows/make.pas