@@ -17,16 +17,16 @@ jobs:
1717 include :
1818 - os : ubuntu-latest
1919 python-version : " 3.12"
20- extra : linux
20+ platform : linux
2121 - os : windows-latest
2222 python-version : " 3.12"
23- extra : windows
23+ platform : windows
2424 - os : macos-latest
2525 python-version : " 3.12"
26- extra : mac
26+ platform : mac
2727
2828 steps :
29- - name : Check out repository
29+ - name : Checkout repository
3030 uses : actions/checkout@v4
3131
3232 - name : Set up Python
@@ -35,14 +35,19 @@ jobs:
3535 python-version : ${{ matrix.python-version }}
3636 cache : pip
3737
38- - name : Install dependencies
38+ - name : Install Python dependencies
3939 run : |
4040 python -m pip install --upgrade pip
4141 pip install .
4242
43- # Linux + Windows
44- - name : Build Linux/Windows app
45- if : matrix.extra != 'mac'
43+ - name : Install Linux system dependencies
44+ if : matrix.platform == 'linux'
45+ run : |
46+ sudo apt-get update
47+ sudo apt-get install -y patchelf libgl1 libegl1 libxkbcommon-x11-0 libxcb-cursor0
48+
49+ - name : Build Linux and Windows app
50+ if : matrix.platform != 'mac'
4651 uses : Nuitka/Nuitka-Action@main
4752 with :
4853 nuitka-version : main
@@ -53,18 +58,12 @@ jobs:
5358 include-package : PyQt5
5459 include-package-data : matplotlib
5560 include-data-dir : vowspace/assets=vowspace/assets
56- windows-icon-from-ico : vowspace/assets/vowspace.ico
57- linux-icon : vowspace/assets/vowspace.png
58- product-name : VowSpace
5961 output-file : VowSpace
60- file-description : VowSpace
61- file-version : 1.4.5
62- product-version : 1.4.5
6362 output-dir : build
63+ assume-yes-for-downloads : true
6464
65- # macOS
6665 - name : Build macOS app
67- if : matrix.extra == 'mac'
66+ if : matrix.platform == 'mac'
6867 uses : Nuitka/Nuitka-Action@main
6968 with :
7069 nuitka-version : main
7473 include-qt-plugins : platforms,platformthemes,imageformats
7574 include-package : PyQt5
7675 include-package-data : matplotlib
77- include-data-dir : vowspace/assets=vowspace /assets
76+ include-data-dir : vowspace/assets=resources /assets
7877 macos-app-icon : vowspace/assets/vowspace.icns
7978 macos-app-name : VowSpace
8079 macos-signed-app-name : com.alicagank.vowspace
@@ -83,10 +82,43 @@ jobs:
8382 output-file : VowSpace
8483 file-description : VowSpace
8584 output-dir : build
85+ assume-yes-for-downloads : true
86+
87+ - name : Package Linux build
88+ if : matrix.platform == 'linux'
89+ run : |
90+ cd build
91+ tar -czf VowSpace-linux.tar.gz main.dist
92+
93+ - name : Package Windows build
94+ if : matrix.platform == 'windows'
95+ shell : pwsh
96+ run : |
97+ Compress-Archive -Path build/main.dist -DestinationPath build/VowSpace-windows.zip
98+
99+ - name : Package macOS build
100+ if : matrix.platform == 'mac'
101+ run : |
102+ cd build
103+ zip -r VowSpace-macOS.zip main.app
104+
105+ - name : Upload Linux artifact
106+ if : matrix.platform == 'linux'
107+ uses : actions/upload-artifact@v4
108+ with :
109+ name : VowSpace-linux
110+ path : build/VowSpace-linux.tar.gz
111+
112+ - name : Upload Windows artifact
113+ if : matrix.platform == 'windows'
114+ uses : actions/upload-artifact@v4
115+ with :
116+ name : VowSpace-windows
117+ path : build/VowSpace-windows.zip
86118
87- - name : Upload artifacts
119+ - name : Upload macOS artifact
120+ if : matrix.platform == 'mac'
88121 uses : actions/upload-artifact@v4
89122 with :
90- name : VowSpace-${{ matrix.extra }}
91- path : build/**
92- include-hidden-files : true
123+ name : VowSpace-macOS
124+ path : build/VowSpace-macOS.zip
0 commit comments