Browse Source

Use Chocolatey for Windows Lazarus Installation

Ugochukwu Mmaduekwe 1 month ago
parent
commit
e8656a43a6
1 changed files with 38 additions and 36 deletions
  1. 38 36
      .github/workflows/make.yml

+ 38 - 36
.github/workflows/make.yml

@@ -1,9 +1,8 @@
----
 name: Make
 name: Make
 
 
 on:
 on:
   schedule:
   schedule:
-    - cron:  '0 0 1 * *'
+    - cron: '0 0 1 * *'
   push:
   push:
     branches:
     branches:
       - "**"
       - "**"
@@ -27,37 +26,40 @@ jobs:
           - windows-latest
           - windows-latest
 
 
     steps:
     steps:
-    - name: Checkout
-      uses: actions/checkout@v4
-      with:
-        submodules: true
-
-    - name: Build on Linux
-      if: runner.os == 'Linux'
-      shell: bash
-      run: |
-        set -xeuo pipefail
-        sudo bash -c 'apt-get update; apt-get install -y lazarus' >/dev/null
-        instantfpc -Fu/usr/lib/lazarus/*/components/lazutils \
-          -B '.github/workflows/make.pas'
-
-    - name: Build on Windows
-      if: runner.os == 'Windows'
-      shell: powershell
-      run: |
-        $ErrorActionPreference = 'stop'
-        Set-PSDebug -Strict
-        New-Variable -Option Constant -Name VAR -Value @{
-          Uri =
-            'https://icolo.dl.sourceforge.net/project/lazarus/Lazarus%20Windows%2064%20bits/Lazarus%204.0/lazarus-4.0-fpc-3.2.2-win64.exe?viasf=1'
-          OutFile = (New-TemporaryFile).FullName + '.exe'
-        }
-        Invoke-WebRequest @VAR
-        & $VAR.OutFile.Replace('Temp', 'Temp\.') /SP- /VERYSILENT /NORESTART `
-          /SUPPRESSMSGBOXES | Out-Null
-        $Env:PATH+=';C:\Lazarus'
-        (Get-Command 'lazbuild').Source | Out-Host
-        $Env:PATH+=';C:\Lazarus\fpc\3.2.2\bin\x86_64-win64'
-        (Get-Command 'instantfpc').Source | Out-Host
-        instantfpc -FuC:\Lazarus\components\lazutils `
-          -B '.github/workflows/make.pas'
+      - name: Checkout
+        uses: actions/checkout@v4
+        with:
+          submodules: true
+
+      - name: Build on Linux
+        if: runner.os == 'Linux'
+        shell: bash
+        run: |
+          set -xeuo pipefail
+          sudo bash -c 'apt-get update; apt-get install -y lazarus' >/dev/null
+          instantfpc -Fu/usr/lib/lazarus/*/components/lazutils \
+            -B '.github/workflows/make.pas'
+
+      - name: Build on Windows
+        if: runner.os == 'Windows'
+        shell: powershell
+        run: |
+          $ErrorActionPreference = 'stop'
+          Set-PSDebug -Strict
+
+          Write-Host "Installing Lazarus via Chocolatey..."
+          choco install lazarus -y
+
+          Write-Host "Verifying Lazarus installation..."
+          choco list --local-only | Out-Host
+
+          # Lazarus installs under C:\Lazarus by default
+          $Env:PATH += ';C:\Lazarus;C:\Lazarus\fpc\3.2.2\bin\x86_64-win64'
+
+          Write-Host "Checking lazbuild and instantfpc availability..."
+          Get-Command lazbuild | Out-Host
+          Get-Command instantfpc | Out-Host
+
+          Write-Host "Building make.pas..."
+          instantfpc -FuC:\Lazarus\components\lazutils `
+            -B '.github/workflows/make.pas'