Skip to content

Add MSIX

Add MSIX #241

Workflow file for this run

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: 'master'
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: Make MSIX Installer
if: contains(matrix.runner, 'windows')
run: 'dart run msix:publish'
- 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 installer (MSIX)
if: contains(matrix.runner, 'windows')
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.target }}
path: ./publish/
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