1- name : build
1+ name : build
22
33on :
44 push :
@@ -18,117 +18,98 @@ jobs:
1818 strategy :
1919 fail-fast : false
2020 matrix :
21- config :
22- # note: names must equal Simba build modes
23- - name : Win64
24- runs-on : windows-latest
25- binary : Simba-Win64.exe
26- test : Simba-Win64.exe
27-
28- - name : Win64 DebugInfo
29- runs-on : windows-latest
30- binary : Simba-Win64-Debug.exe
31- test : Simba-Win64-Debug.exe
32-
33- - name : Win32
34- runs-on : windows-latest
35- binary : Simba-Win32.exe
36- test : Simba-Win32.exe
21+ config :
22+ # - runs-on: macos-15-intel
23+ # name: Mac
24+ # build-mode: Mac
25+ # laz-url: https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20x86-64/Lazarus%203.8/lazarus-darwin-x86_64-3.8.zip
26+ # fpc-url: |
27+ # https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20x86-64/Lazarus%203.8/fpc-3.2.2.intelarm64-macosx.dmg
3728
38- - name : Linux
39- runs-on : ubuntu-22.04
40- binary : Simba-Linux64
41- test : Simba-Linux64
29+ # - runs-on: macos-15
30+ # name: Mac Arm
31+ # build-mode: Mac
32+ # laz-url: https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20aarch64/Lazarus%203.8/lazarus-darwin-aarch64-3.8.zip
33+ # fpc-url: |
34+ # https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20aarch64/Lazarus%203.8/fpc-3.2.2.intelarm64-macosx.dmg
4235
43- - name : Linux Arm
44- runs-on : ubuntu-22.04-arm
45- binary : Simba-Linux
46- # test: Simba-Linux MatchTemplateMask test fails, investigate later
36+ # - name: Mac Custom
37+ # runs-on: macos-15-intel
38+ # build-mode: Mac
39+ # binary: Simba-Mac.dmg
40+ # url: https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/releases/download/v2.4.0g/fpclazup-x86_64-darwin
4741
48- - name : Mac Arm
49- runs-on : macos-14
50- binary : Simba-Mac-Arm.dmg
51- # test: Simba MatchTemplateMask test fails, investigate later
42+ - name : Mac arm64
43+ runs-on : macos-15
44+ build-mode : Mac Arm
45+ binary : Simba-Mac-Arm.dmg
46+ url : https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/releases/download/v2.4.0g/fpclazup-aarch64-darwin
5247
53- # GitHub removing macos 13 causes this problem on newer runners:
54- # "non-private labels cannot appear between .cfi_startproc / .cfi_endproc pairs"
55- # Fixed in new FPC but that will never release... (sort of like this project xD)
56- # Just comment out since x86 macos is quickly not existent in the year of 2025.
57- # - name: Mac
58- # runs-on: macos-13
59- # binary: Simba-Mac.dmg
60-
6148 steps :
62496350 with :
6451 submodules : true
6552
66- - name : Install Lazarus (Mac Arm)
67- if : matrix.config.name == 'Mac Arm'
68- 53+ - name : Restore
54+ id : restore-cache
55+ uses : actions/cache/restore@v4
6956 with :
70- laz-url : https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20aarch64/Lazarus%204.4/lazarus-darwin-aarch64-4.4.zip
71- fpc-url : |
72- https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20aarch64/Lazarus%204.4/fpc-3.2.2.intelarm64-macosx.dmg
57+ path : ${{ runner.temp }}/fpclazup
58+ key : ${{ matrix.config.name }}
7359
74- - name : Install Lazarus (Linux)
75- if : matrix.config.name == 'Linux'
76- 77- with :
78- laz-url : https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%204.4/lazarus-project_4.4.0-0_amd64.deb
79- fpc-url : |
80- https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%204.4/fpc-laz_3.2.2-210709_amd64.deb
81- https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%204.4/fpc-src_3.2.2-210709_amd64.deb
82-
83- - name : Install Lazarus (Linux Arm)
84- if : matrix.config.name == 'Linux Arm'
85- 86- with :
87- laz-url : https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20arm64%20DEB/Lazarus%204.4/lazarus-project_4.4.0-0_arm64.deb
88- fpc-url : |
89- https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20arm64%20DEB/Lazarus%204.4/fpc-laz_3.2.3-240813_arm64.deb
90- https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20arm64%20DEB/Lazarus%204.4/fpc-src_3.2.3-240813_arm64.deb
60+ - name : Install Lazarus
61+ working-directory : ${{ runner.temp }}
62+ if : steps.restore-cache.outputs.cache-hit != 'true'
63+ run : |
64+ curl --retry 5 -L -o installer ${{ matrix.config.url }}
65+ chmod +x installer
66+ #./installer --lazOPT="-g -gl -gw2 -O1" --fpcOPT="-g -gl -gw2 -O1" --only=docker --lazVersion="stable.gitlab" --fpcVersion="trunk.gitlab" --installdir=fpclazup --noconfirm --verbose
9167
92- - name : Install Lazarus (Win32)
93- if : startsWith(matrix.config.name, 'Win32') == true
94- 95- with :
96- laz-url : https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/Lazarus%204.4/lazarus-4.4-fpc-3.2.2-win32.exe
68+ git clone https://gitlab.com/freepascal.org/fpc/source fpclazup/fpc
69+ # Use a known working trunk commit
70+ git -C fpclazup/fpc checkout de30ac10d4f228c5d4915c49d48715063ea55787
71+ ./installer --lazOPT="-g -gl -gw2 -O1" --fpcOPT="-g -gl -gw2 -O1" --only=FPCBuildOnly,LazarusGetOnly,LazBuild,LazarusConfigOnly --fpcVersion="trunk.gitlab" --lazVersion="stable.gitlab" --installdir=fpclazup --noconfirm --verbose
72+
73+ - name : Add custom to path
74+ run : |
75+ echo "${{ runner.temp }}/fpclazup/lazarus/" >> $GITHUB_PATH
9776
98- - name : Install Lazarus (Win64)
99- if : startsWith(matrix.config.name, 'Win64') == true
100- 101- with :
102- laz-url : https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/Lazarus%204.4/lazarus-4.4-fpc-3.2.2-win64.exe
77+ # - name: Save Lazarus
78+ # if: steps.restore-cache.outputs.cache-hit != 'true'
79+ # uses: actions/cache/save@v4
80+ # with:
81+ # path: ${{ runner.temp }}/fpclazup
82+ # key: ${{ matrix.config.name }}2
83+
84+ # - name: Install Lazarus
85+ 86+ # with:
87+ # laz-url: ${{ matrix.config.laz-url }}
88+ # fpc-url: ${{ matrix.config.fpc-url }}
10389
10490 - name : Build Simba
10591 run : |
92+ echo "${{ matrix.config.build-mode }}"
10693 export GITHUB_SHORT_SHA=$(git rev-parse --short HEAD)
107- lazbuild --build-mode="${{ matrix.config.name }}" "Source/Simba.lpi"
94+ lazbuild --build-mode="${{ matrix.config.build-mode }}" "Source/Simba.lpi"
10895
109- - name : Create Mac Image
110- if : startsWith(matrix.config.name, 'Mac') == true
111- run : |
112- brew install create-dmg
113-
114- for i in {1..10};
115- do
116- create-dmg --window-size 500 330 --icon-size 48 --icon "Simba.app" 130 135 --app-drop-link 380 135 --background "Source/macosbundle/installer.tff" "${{ matrix.config.binary }}" "Simba.app" && break || sleep 15;
117- done
96+ # - name: Debug
97+ # if: always()
98+ # uses: actions/upload-artifact@v4
99+ # with:
100+ # name: debug
101+ # path: build/Mac Arm
118102
119- - name : Test Simba
120- if : matrix.config.test != ''
121- run : |
122- if [[ "${{ matrix.config.runs-on }}" == ubuntu* ]]; then
123- export DISPLAY=:1
124- Xvfb :1 & sleep 2
125- fi
126-
127- chmod +x ${{ matrix.config.test }}
128- ./${{ matrix.config.test }} --run "Tests/RunTests/tester.simba"
129-
130- - name : Upload Simba Binary
131- 132- with :
133- name : ${{ matrix.config.name }}
134- path : ${{ matrix.config.binary }}
103+ # - name: Create Mac Image
104+ # run: |
105+ # brew install create-dmg
106+ # for i in {1..10};
107+ # do
108+ # create-dmg --window-size 500 330 --icon-size 48 --icon "Simba.app" 130 135 --app-drop-link 380 135 --background "Source/macosbundle/installer.tff" "${{ matrix.config.binary }}" "Simba.app" && break || sleep 15;
109+ # done
110+
111+ # - name: Upload Simba Binary
112+ 113+ # with:
114+ # name: ${{ matrix.config.name }}
115+ # path: ${{ matrix.config.binary }}
0 commit comments