Skip to content

Reorganize project structure: move app to src/, add proper entry points #38

Reorganize project structure: move app to src/, add proper entry points

Reorganize project structure: move app to src/, add proper entry points #38

Workflow file for this run

name: Build FileShift
on:
push:
branches: [ main, master ]
tags:
- 'v*'
pull_request:
branches: [ main, master ]
workflow_dispatch:
jobs:
build-macos:
strategy:
matrix:
include:
- os: macos-15
arch: arm64
name: apple-silicon
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller PyQt6
- name: Build application
run: pyinstaller --clean fileshift.spec
- name: Create DMG
run: |
echo "Contents of dist directory:"
ls -la dist/
if [ ! -d "dist/FileShift.app" ]; then
echo "ERROR: Application not found in dist directory"
exit 1
fi
mkdir -p dmg_contents
cp -R "dist/FileShift.app" dmg_contents/
ln -s /Applications dmg_contents/Applications
hdiutil create -volname "FileShift" \
-srcfolder dmg_contents \
-ov -format UDZO \
"FileShift-${{ matrix.name }}.dmg"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: FileShift-${{ matrix.name }}
path: FileShift-${{ matrix.name }}.dmg
if-no-files-found: error
create-release:
needs: build-macos
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: FileShift-apple-silicon/FileShift-apple-silicon.dmg
body: |
## FileShift
### Download
- **Apple Silicon Macs** (M1/M2/M3/M4): `FileShift-apple-silicon.dmg`
### Installation
1. Download the DMG file
2. Double-click to mount it
3. Drag the app to your Applications folder
4. First time running: Right-click and select "Open" to bypass Gatekeeper
draft: false
prerelease: false