name: Build and Release DMG on: push: tags: - 'v0.*.*' - 'v[1-9].*.*' workflow_dispatch: jobs: build: runs-on: macos-15 # ← CHANGÉ de macos-14 à macos-15 steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Xcode uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '16.1' # ← CHANGÉ de 15.2 à 16.1 (inclut Swift 6) - 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: Create DMG run: | # Trouve l'app compilée APP_PATH=$(find ./build/Build/Products/Release -name "iDither.app" -type d | head -n 1) if [ -z "$APP_PATH" ]; then echo "❌ App non trouvée dans le build" 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 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" - 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) --- Build automatique via GitHub Actions