Skip to content

Build

Build #2

Workflow file for this run

name: Build
on:
push:
schedule:
- cron: '0 6 * * 0'
jobs:
macOS:
runs-on: macos-14
defaults:
run:
working-directory: example
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
# - run: flutter config --enable-macos-desktop
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build macos --verbose
- run: |
mv build/macos/Build/Products/Release/fvp_example.app .
cmake -E tar cvf fvp_example_macos.7z --format=7zip fvp_example.app
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fvp-example-macOS
path: example/fvp_example_macos.7z
iOS:
runs-on: macos-14
defaults:
run:
working-directory: example
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build ios --release --no-codesign --verbose
- run: |
mv build/ios/iphoneos/Runner.app .
cmake -E tar cvf fvp_example_ios.7z --format=7zip Runner.app
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fvp-example-iOS
path: example/fvp_example_ios.7z
Windows:
runs-on: windows-latest
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
channel: ['stable', 'master']
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
channel: ${{ matrix.channel }}
cache: true
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build windows --verbose
- run: mv build/windows/x64/runner/Release .
- run: cmake -E tar cvf fvp_example_windows-${{ matrix.channel }}.7z --format=7zip Release
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fvp-example-windows-${{ matrix.channel }}
path: |
example/fvp_example_windows-${{ matrix.channel }}.7z
example/build/windows/CMakeFiles/CMakeConfigureLog.yaml
Linux:
runs-on: ubuntu-latest
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
version: ['3.10.x', 'any']
channel: ['stable', 'master']
exclude:
- version: '3.10.x'
channel: 'master'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ matrix.version }}
channel: ${{ matrix.channel }}
cache: true
- run: |
sudo apt-get update -y
sudo apt-get install -y cmake clang ninja-build libgtk-3-dev libpulse-dev
# - run: flutter config --enable-linux-desktop
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build linux --verbose
- run: mv build/linux/x64/release/bundle .
- run: cmake -E tar Jcvf fvp_example_linux-${{ matrix.channel }}-${{ matrix.version }}.tar.xz bundle
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fvp-example-linux-${{ matrix.channel }}-${{ matrix.version }}
path: example/fvp_example_linux*.tar.xz
Snap:
runs-on: ubuntu-latest
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
target: [linux] #, apk]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: actions/setup-java@v4
if: ${{ matrix.target == 'apk' }}
with:
distribution: 'zulu'
java-version: '17'
- name: Install dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y cmake clang ninja-build libgtk-3-dev libpulse-dev
sudo snap install flutter --classic
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build ${{ matrix.target }} --verbose
Android:
runs-on: ${{ matrix.host }}-latest
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
host: [ubuntu]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build apk --verbose
- run: mv ./build/app/outputs/apk/release/app-release.apk fvp_example_android.apk
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fvp-example-android-${{ matrix.host }}
path: example/fvp_example_android.apk
Web:
runs-on: ubuntu-latest
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
wasm: ['--wasm', '']
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build web ${{ matrix.wasm }} --verbose