Skip to content

Commit 94ad473

Browse files
Fix PyInstaller build to include src.converters package
1 parent b91ac05 commit 94ad473

1 file changed

Lines changed: 37 additions & 34 deletions

File tree

.github/workflows/build.yml

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build JSON to CSV Converter
1+
name: Build FileShift
22

33
on:
44
push:
@@ -20,22 +20,22 @@ jobs:
2020
- os: macos-latest # Apple Silicon
2121
arch: arm64
2222
name: apple-silicon
23-
23+
2424
runs-on: ${{ matrix.os }}
25-
25+
2626
steps:
2727
- uses: actions/checkout@v4
28-
28+
2929
- name: Set up Python
3030
uses: actions/setup-python@v5
3131
with:
3232
python-version: '3.11'
33-
33+
3434
- name: Install dependencies
3535
run: |
3636
python -m pip install --upgrade pip
3737
pip install pyinstaller PyQt6
38-
38+
3939
- name: Build application
4040
run: |
4141
# Create optimized spec file
@@ -61,6 +61,9 @@ excluded_modules = [
6161

6262
a = Analysis(
6363
['json_to_csv_multifile_pyqt.py'],
64+
pathex=['.'],
65+
datas=[('src', 'src')],
66+
hiddenimports=['src.converters', 'src.converters.base', 'src.converters.handlers', 'src.converters.operations'],
6467
excludes=excluded_modules,
6568
optimize=2,
6669
)
@@ -78,7 +81,7 @@ pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
7881
exe = EXE(
7982
pyz, a.scripts, [],
8083
exclude_binaries=True,
81-
name='JSON to CSV Converter',
84+
name='FileShift',
8285
debug=False,
8386
strip=True,
8487
upx=False,
@@ -89,83 +92,83 @@ coll = COLLECT(
8992
exe, a.binaries, a.zipfiles, a.datas,
9093
strip=True,
9194
upx=False,
92-
name='JSON to CSV Converter',
95+
name='FileShift',
9396
)
9497

9598
app = BUNDLE(
9699
coll,
97-
name='JSON to CSV Converter.app',
98-
bundle_identifier='com.simplifi.jsontocsv',
100+
name='FileShift.app',
101+
bundle_identifier='com.simplifi.fileshift',
99102
)
100103
EOF
101-
104+
102105
# Build with optimized spec
103106
pyinstaller --clean json_to_csv_multifile_pyqt.spec
104-
107+
105108
- name: Create DMG
106109
run: |
107110
# Debug: Check what was created
108111
echo "Contents of dist directory:"
109112
ls -la dist/
110-
113+
111114
# Verify the app exists
112-
if [ ! -d "dist/JSON to CSV Converter.app" ]; then
115+
if [ ! -d "dist/FileShift.app" ]; then
113116
echo "ERROR: Application not found in dist directory"
114117
exit 1
115118
fi
116-
119+
117120
# Create a DMG for easier distribution
118121
mkdir -p dmg_contents
119-
cp -R "dist/JSON to CSV Converter.app" dmg_contents/
120-
122+
cp -R "dist/FileShift.app" dmg_contents/
123+
121124
# Create Applications symlink
122125
ln -s /Applications dmg_contents/Applications
123-
126+
124127
# Create DMG
125-
hdiutil create -volname "JSON to CSV Converter" \
128+
hdiutil create -volname "FileShift" \
126129
-srcfolder dmg_contents \
127130
-ov -format UDZO \
128-
"JSON-to-CSV-Converter-${{ matrix.name }}.dmg"
129-
131+
"FileShift-${{ matrix.name }}.dmg"
132+
130133
- name: Upload artifact
131134
uses: actions/upload-artifact@v4
132135
with:
133-
name: JSON-to-CSV-Converter-${{ matrix.name }}
134-
path: JSON-to-CSV-Converter-${{ matrix.name }}.dmg
136+
name: FileShift-${{ matrix.name }}
137+
path: FileShift-${{ matrix.name }}.dmg
135138
if-no-files-found: error
136139

137140
create-release:
138141
needs: build-macos
139142
runs-on: ubuntu-latest
140143
if: startsWith(github.ref, 'refs/tags/')
141-
144+
142145
steps:
143146
- name: Download all artifacts
144147
uses: actions/download-artifact@v4
145-
148+
146149
- name: Create Release
147150
uses: softprops/action-gh-release@v1
148151
with:
149152
files: |
150-
JSON-to-CSV-Converter-intel/JSON-to-CSV-Converter-intel.dmg
151-
JSON-to-CSV-Converter-apple-silicon/JSON-to-CSV-Converter-apple-silicon.dmg
153+
FileShift-intel/FileShift-intel.dmg
154+
FileShift-apple-silicon/FileShift-apple-silicon.dmg
152155
body: |
153-
## JSON to CSV Converter
154-
156+
## FileShift
157+
155158
### Downloads
156-
- **Intel Macs**: `JSON-to-CSV-Converter-intel.dmg`
157-
- **Apple Silicon Macs** (M1/M2/M3): `JSON-to-CSV-Converter-apple-silicon.dmg`
158-
159+
- **Intel Macs**: `FileShift-intel.dmg`
160+
- **Apple Silicon Macs** (M1/M2/M3): `FileShift-apple-silicon.dmg`
161+
159162
### How to check your Mac type
160163
1. Click the Apple menu > About This Mac
161164
2. Look for "Chip" or "Processor"
162165
- Intel processor = Download Intel version
163166
- Apple M1/M2/M3 = Download Apple Silicon version
164-
167+
165168
### Installation
166169
1. Download the appropriate DMG file
167170
2. Double-click to mount it
168171
3. Drag the app to your Applications folder
169172
4. First time running: Right-click and select "Open" to bypass Gatekeeper
170173
draft: false
171-
prerelease: false
174+
prerelease: false

0 commit comments

Comments
 (0)