@@ -22,13 +22,13 @@ jobs:
2222 include :
2323 - os : windows-latest
2424 artifact_name : VideoMergingTool-windows-x64
25- binary_name : VideoMergingTool.exe
25+ package_path : dist/installer/ VideoMergingTool-Setup .exe
2626 - os : macos-latest
2727 artifact_name : VideoMergingTool-macos-arm64
28- binary_name : VideoMergingTool.app
28+ package_path : dist/ VideoMergingTool.dmg
2929 - os : ubuntu-latest
3030 artifact_name : VideoMergingTool-linux-x64
31- binary_name : VideoMergingTool
31+ package_path : dist/ VideoMergingTool
3232
3333 steps :
3434 - name : Checkout
@@ -42,58 +42,33 @@ jobs:
4242 - name : Install build dependencies
4343 run : python -m pip install -r requirements-build.txt
4444
45+ - name : Install Inno Setup on Windows
46+ if : runner.os == 'Windows'
47+ run : choco install innosetup --no-progress -y
48+
4549 - name : Build executable on Windows
4650 if : runner.os == 'Windows'
47- run : pyinstaller --onefile --windowed --clean --noconfirm --name VideoMergingTool --icon assets/icons/VideoMergingTool.ico --collect-all typer --collect-all click --collect-all rich --collect-all webview --collect-all certifi --hidden-import videomerge.gui --hidden-import tkinter main.py
51+ shell : pwsh
52+ run : .\scripts\build_windows.ps1
4853
4954 - name : Build app on macOS
5055 if : runner.os == 'macOS'
51- run : pyinstaller --windowed --clean --noconfirm --name VideoMergingTool --icon assets/icons/VideoMergingTool.icns --collect-all typer --collect-all click --collect-all rich --collect-all webview --collect-all certifi --hidden-import videomerge.gui --hidden-import tkinter main.py
56+ run : bash scripts/build_local.sh
5257
5358 - name : Build executable on Linux
5459 if : runner.os == 'Linux'
55- run : pyinstaller --onefile --windowed --clean --noconfirm --name VideoMergingTool --icon assets/icons/VideoMergingTool.png --collect-all typer --collect-all click --collect-all rich --collect-all webview --collect-all certifi --hidden-import videomerge.gui --hidden-import tkinter main.py
56-
57- - name : Prepare artifact on Windows
58- if : runner.os == 'Windows'
59- shell : pwsh
60- run : |
61- New-Item -ItemType Directory -Force package
62- Copy-Item "dist\${{ matrix.binary_name }}" "package\${{ matrix.binary_name }}"
63- Copy-Item README.md package\
64- Compress-Archive -Path package\* -DestinationPath "${{ matrix.artifact_name }}.zip" -Force
65-
66- - name : Prepare artifact on Unix
67- if : runner.os == 'Linux'
68- shell : bash
69- run : |
70- mkdir -p package
71- cp "dist/${{ matrix.binary_name }}" "package/${{ matrix.binary_name }}"
72- cp README.md package/
73- tar -czf "${{ matrix.artifact_name }}.tar.gz" -C package .
74-
75- - name : Prepare artifact on macOS
76- if : runner.os == 'macOS'
77- shell : bash
78- run : |
79- hdiutil create -volname VideoMergingTool -srcfolder "dist/VideoMergingTool.app" -ov -format UDZO "${{ matrix.artifact_name }}.dmg"
60+ run : bash scripts/build_local.sh
8061
8162 - name : Upload build artifact
8263 uses : actions/upload-artifact@v4
8364 with :
8465 name : ${{ matrix.artifact_name }}
85- path : |
86- *.zip
87- *.tar.gz
88- *.dmg
66+ path : ${{ matrix.package_path }}
8967 if-no-files-found : error
9068
9169 - name : Upload release asset
9270 if : startsWith(github.ref, 'refs/tags/v')
9371 uses : softprops/action-gh-release@v2
9472 with :
95- files : |
96- *.zip
97- *.tar.gz
98- *.dmg
73+ files : ${{ matrix.package_path }}
9974 generate_release_notes : true
0 commit comments