name: Build and Release DMG on: push: tags: - 'v0.*.*' - 'v[1-9].*.*' workflow_dispatch: jobs: build: runs-on: macos-15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Xcode uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '16.1' - name: Resolve Swift Package Dependencies run: | xcodebuild -resolvePackageDependencies \ -scheme iDither - name: Build app run: | xcodebuild -scheme iDither \ -configuration Release \ -derivedDataPath ./build \ -destination 'platform=macOS' \ clean build - name: Verify build output run: | echo "🔍 Contenu de ./build/Build/Products/Release/ :" ls -la ./build/Build/Products/Release/ - name: Create DMG run: | # Chemin exact pour Swift Package Manager APP_PATH="./build/Build/Products/Release/iDither.app" if [ ! -d "$APP_PATH" ]; then echo "❌ App non trouvée à : $APP_PATH" echo "🔍 Recherche alternative..." find ./build -name "*.app" -type d exit 1 fi echo "✅ App trouvée : $APP_PATH" # Crée un dossier temporaire pour le DMG mkdir -p dmg_content cp -R "$APP_PATH" dmg_content/ # Ajoute un lien vers /Applications (drag & drop facile) ln -s /Applications dmg_content/Applications # Crée le DMG hdiutil create -volname "iDither" \ -srcfolder dmg_content \ -ov -format UDZO \ iDither-${{ github.ref_name }}.dmg echo "✅ DMG créé : iDither-${{ github.ref_name }}.dmg" ls -lh iDither-*.dmg - name: Create Release uses: softprops/action-gh-release@v1 with: files: iDither-*.dmg draft: false prerelease: ${{ startsWith(github.ref, 'refs/tags/v0.') }} body: | ## iDither ${{ github.ref_name }} Application macOS de dithering en temps réel. ### Installation 1. Téléchargez le fichier `.dmg` 2. Ouvrez-le et glissez iDither vers Applications 3. Au premier lancement, faites clic droit → Ouvrir (sécurité macOS) ### Changements Build automatique via GitHub Actions --- **Plateforme :** macOS 14.0+ **Architecture :** Apple Silicon (M1/M2/M3) & Intel env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}