name: Flutter Test on: push: branches: - main pull_request: branches: - main # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: test: name: Test runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - name: Setup Flutter Environment uses: ./.github/actions/flutter-setup # Path to the composite action directory # Pass inputs if needed (optional, using defaults here) # with: # flutter-channel: 'stable' # java-version: '17' # Debug: Echo current directory contents - name: List root directory contents run: | pwd ls -la # Debug: Recursive directory structure - name: Show full directory structure run: | echo "Full directory structure:" tree -L 3 # Debug: Submodule status and details - name: Check submodule status run: | echo "Submodule status:" git submodule status echo "\nSubmodule details:" git submodule foreach 'echo $path: && pwd && ls -la' # - name: Run static analysis # run: flutter analyze - name: Run tests run: flutter test build_android: name: Build Android APKs needs: test runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - name: Setup Flutter Environment uses: ./.github/actions/flutter-setup # Path to the composite action directory with: flutter-channel: stable java-version: 17 - name: Decode android/upload.jks run: echo "${{ secrets.UPLOAD_KEYSTORE_JKS }}" | base64 --decode > android/upload.jks - name: Decode android/key.properties run: echo "${{ secrets.KEY_PROPERTIES }}" | base64 --decode > android/key.properties - name: Build Universal APK run: flutter build apk --release - name: Rename Universal APK run: mv build/app/outputs/flutter-apk/{app-release,app-universal-release}.apk - name: Upload Android APK Artifact uses: actions/upload-artifact@v4 with: name: release-apk path: build/app/outputs/flutter-apk/*.apk build_linux: needs: test runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - name: Setup Flutter Environment uses: ./.github/actions/flutter-setup # Path to the composite action directory with: flutter-channel: stable java-version: 17 - name: setup fastforge run: | dart pub global activate fastforge - name: Build Linux AppImage run: fastforge package --platform linux --targets deb - name: Upload deb Artifacts uses: actions/upload-artifact@v4 with: name: build-artifacts path: | dist/*/*.deb