Switched back to a lazy ListView far more performant #112
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Flutter CI | |
on: | |
push: | |
# branches: [ master ] | |
pull_request: | |
# branches: [ master ] | |
jobs: | |
build: | |
runs-on: ${{matrix.runner}} | |
strategy: | |
matrix: | |
target: [macos-x64, windows-x64, linux-x64] | |
include: | |
# - target: macos-arm64 | |
# os: macos | |
# arch: arm64 | |
# runner: macOS-latest | |
- target: macos-x64 | |
os: macos | |
arch: x64 | |
runner: macOS-latest | |
- target: windows-x64 | |
os: windows | |
arch: x64 | |
runner: windows-latest | |
- target: linux-x64 | |
os: linux | |
arch: x64 | |
runner: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Linux deps | |
if: contains(matrix.runner, 'ubuntu') | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y ninja-build libgtk-3-dev | |
sudo snap install snapcraft --classic | |
sudo snap install multipass --classic | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: 'stable' | |
cache: true | |
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' # optional, change this to force refresh cache | |
cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' # optional, change this to specify the cache path | |
architecture: ${{matrix.arch}} # optional, x64 or arm64 | |
- run: flutter --version | |
- run: flutter pub get | |
- run: flutter build ${{matrix.os}} | |
# - name: Create MSIX installer | |
# if: contains(matrix.runner, 'windows') | |
# run: flutter pub run msix:create | |
- name: Download Inno Setup | |
uses: suisei-cn/actions-download-file@v1 | |
if: contains(matrix.runner, 'windows') | |
with: | |
url: https://jrsoftware.org/download.php/is.exe | |
target: ../ | |
- name: Install Inno Setup | |
if: contains(matrix.runner, 'windows') | |
run: '../is.exe /VERYSILENT /NORESTART /ALLUSERS' | |
- name: Create ISS | |
if: contains(matrix.runner, 'windows') | |
run: dart ./lib/inno_setup.dart | |
- name: Compile Installer | |
if: contains(matrix.runner, 'windows') | |
run: '& "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" /f innosetup.iss' | |
- name: Create MacOS App bundle | |
if: contains(matrix.runner, 'macos') | |
run: | | |
cd ./build/macos/Build/Products/Release/ | |
ditto -c -k --sequesterRsrc --keepParent ./desktop_adb_file_browser.app result.zip || true | |
# - name: Create Snap installer | |
# if: contains(matrix.runner, 'ubuntu') | |
# run: snapcraft | |
# TODO: Mac artifacts | |
# TODO: Figure out how to fix Snap builds | |
# Windows | |
- name: Upload Windows artifacts (archive) | |
if: contains(matrix.runner, 'windows') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.target }} | |
path: ./build/windows/x64/runner/Release/* | |
if-no-files-found: error | |
# - name: Upload Windows MSIX installer | |
# if: contains(matrix.runner, 'windows') | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: ${{ matrix.target }} msix installer | |
# path: | | |
# ./build/windows/runner/Release/*.msix | |
# if-no-files-found: error | |
- name: Upload Windows Inno installer | |
if: contains(matrix.runner, 'windows') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.target }} Inno installer | |
path: | | |
./build/windows/x64/runner/windows_installer.exe | |
if-no-files-found: error | |
# Linux | |
- name: Upload Linux artifacts (archive) | |
if: contains(matrix.runner, 'ubuntu') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.target }} | |
path: ./build/linux/**/release/bundle/* | |
if-no-files-found: error | |
# - name: Upload Linux snap artifacts | |
# if: contains(matrix.runner, 'ubuntu') | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: ${{ matrix.target }} | |
# path: ./*.snap | |
# if-no-files-found: error | |
# MacOS | |
- name: Upload MacOS artifacts (archive) | |
if: contains(matrix.runner, 'mac') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.target }} | |
path: ./build/macos/Build/Products/Release/result.zip | |
if-no-files-found: error |