name: CI on: push: branches: [ master , main] pull_request: branches: [ master , main] jobs: build: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v2 - name: Setup Java JDK uses: actions/setup-java@v2 with: distribution: 'adopt' java-version: "8.x" # - name: Setup gradle # uses: eskatos/gradle-command-action@v1 # with: # gradle-version: 6.5 - name: Flutter action uses: subosito/flutter-action@v1.5.3 with: channel: "stable" flutter-version: "2.0.5" - name: Cache Dependencies id: cache uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper Pods key: | ${{runner.OS}}-gradle-caches-${{ hashFiles('pubspec.lock') }} ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- ${{ runner.os }}-gradle- - name: Install Dependencies if: steps.cache.outputs.cache-hit != 'true' run: flutter pub get - name: Build apk if: ${{ runner.os == 'Linux' }} run: flutter build apk --debug --split-per-abi # - name: Build Web # if: ${{runner.os == 'Linux'}} # run: | # flutter build web # cd build/web # zip -r web-app.zip . - name: Build ios if: ${{ runner.os == 'macOS' }} run: | sudo xcode-select -s /Applications/Xcode_12.3.app flutter build ios --release --no-codesign cd build/ios/iphoneos mkdir Payload cd Payload ln -s ../Runner.app cd .. zip -r app.ipa Payload - name: Build exe if: ${{ runner.os == 'Windows'}} run: | flutter build windows - name: Build mac if: ${{ runner.os == 'macOS'}} run: | flutter build macos # output some file: - name: artifact uses: actions/upload-artifact@v2 with: name: ${{runner.OS}}-artifact path: | # build/app/outputs/flutter-apk/**/*.apk build/app/outputs/flutter-apk/app.apk build/ios/**/*.ipa build/web/web-app.zip