name: Build ALL run-name: Build ALL on: workflow_dispatch: {} jobs: Build_MacOS: runs-on: macos-15 steps: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version-file: pubspec.yaml architecture: x64 - run: sudo xcode-select --switch /Applications/Xcode_16.0.app - run: flutter pub get # Step 1: Decode and install the certificate - name: Decode and install certificate env: CERTIFICATE: ${{ secrets.CERTIFICATE }} CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }} run: | echo "$CERTIFICATE" | base64 --decode > signing_certificate.p12 security import signing_certificate.p12 -k ~/Library/Keychains/login.keychain -P "$CERTIFICATE_PASSWORD" -T /usr/bin/codesign # Step 2: Build the Flutter macOS app - name: Build Flutter macOS App run: flutter build macos --release # Step 3: Create the DMG file - name: Create DMG run: | mkdir -p dist mkdir -p dist/dmg_contents cp -R build/macos/Build/Products/Release/venera.app dist/dmg_contents/ ln -s /Applications dist/dmg_contents/Applications hdiutil create -volname "venera" -srcfolder dist/dmg_contents -ov -format UDZO "dist/venera.dmg" # Step 4: Attach and upload artifacts (optional) - name: Upload DMG uses: actions/upload-artifact@v4 with: name: venera.dmg path: dist/venera.dmg Build_IOS: runs-on: macos-15 steps: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version-file: pubspec.yaml architecture: x64 - run: sudo xcode-select --switch /Applications/Xcode_16.0.app - run: flutter pub get - run: flutter build ios --release --no-codesign - run: | mkdir -p /Users/runner/work/venera/venera/build/ios/iphoneos/Payload mv /Users/runner/work/venera/venera/build/ios/iphoneos/Runner.app /Users/runner/work/venera/venera/build/ios/iphoneos/Payload cd /Users/runner/work/venera/venera/build/ios/iphoneos/ zip -r venera-ios.ipa Payload - uses: actions/upload-artifact@v4 with: name: app-ios.ipa path: /Users/runner/work/venera/venera/build/ios/iphoneos/venera-ios.ipa Build_Android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version-file: pubspec.yaml architecture: x64 - name: Decode and install certificate env: STORE_FILE: ${{ secrets.ANDROID_KEYSTORE }} PROPERTY_FILE: ${{ secrets.ANDROID_KEY_PROPERTIES }} run: | echo "$STORE_FILE" | base64 --decode > android/keystore.jks echo "$PROPERTY_FILE" > android/key.properties - uses: actions/setup-java@v4 with: distribution: 'oracle' java-version: '17' - run: flutter pub get - run: flutter build apk --release - uses: actions/upload-artifact@v4 with: name: apks path: build/app/outputs/apk/release Build_Windows: runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: install dependencies run: | choco install yq -y pip install httpx - uses: subosito/flutter-action@v2 with: channel: "stable" flutter-version-file: pubspec.yaml architecture: x64 - name: build run: | flutter pub get python windows/build.py - uses: actions/upload-artifact@v4 with: name: windows_build path: build/windows/Venera-* Build_Linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: channel: 'stable' flutter-version-file: pubspec.yaml architecture: x64 - run: | sudo apt-get update -y sudo apt-get install -y ninja-build libgtk-3-dev webkit2gtk-4.1 dart pub global activate flutter_to_debian - run: python3 debian/build.py - run: dart run flutter_to_arch - run: | sudo rm -rf build/linux/arch/app.tar.gz sudo rm -rf build/linux/arch/pkg sudo rm -rf build/linux/arch/src sudo rm -rf build/linux/arch/PKGBUILD - uses: actions/upload-artifact@v4 with: name: deb_build path: build/linux/x64/release/debian - uses: actions/upload-artifact@v4 with: name: arch_build path: build/linux/arch/