Skip to content

v15.3.17

v15.3.17 #54

# This is a basic workflow to help you get started with Actions
name: Build Package
# Controls when the workflow will run
on:
release:
types: [published]
jobs:
build_ios:
runs-on: macos-latest
env:
SHEME: Runner
BUILD_CONFIGURATION: Release
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Git submodule init
uses: snickerbockers/submodules-init@v4
- name: Install and set Flutter version
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.1'
channel: 'stable'
- name: Restore packages
run: flutter pub get
- name: Build Flutter
run: flutter build ios --release --no-codesign -v
- name: Build xArchive
run: |
mkdir Payload && mv build/ios/iphoneos/Runner.app Payload && zip -r Payload.zip Payload && mkdir output && mv Payload.zip output/ikaros.ipa
- name: Upload ipa to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.LI_GUOHAO_TOKEN }}
file: output/ikaros.ipa
asset_name: ikaros-ios-${{ github.ref_name }}.ipa
build_android:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Git submodule init
uses: snickerbockers/submodules-init@v4
- name: Setup Java to compile Android project
uses: actions/setup-java@v1
with:
java-version: '17.x'
- name: Install and set Flutter version
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.1'
channel: 'stable'
- name: Restore packages
run: flutter pub get
- name: Build Android App Bundle
run: flutter build apk --release -v
- name: Publish Android Artefacts
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.LI_GUOHAO_TOKEN }}
file: build/app/outputs/flutter-apk/app-release.apk
asset_name: ikaros-android-${{ github.ref_name }}.apk
build_windows:
runs-on: windows-latest
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Git submodule init
uses: snickerbockers/submodules-init@v4
- name: Install and set Flutter version
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.1'
channel: 'stable'
- name: Restore packages
run: flutter pub get
- name: Build Windows App Bundle
run: flutter build windows --release -v
- name: Zip release files
run: Compress-Archive -Path "build\\windows\\x64\\runner\\Release\\*" -DestinationPath "output.zip"
- name: Publish Windows Artefacts
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.LI_GUOHAO_TOKEN }}
file: output.zip
asset_name: ikaros-windows-${{ github.ref_name }}.zip
build_macos:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Git submodule init
uses: snickerbockers/submodules-init@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.1'
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build macOS app
run: flutter build macos --release -v
- name: Set APP_NAME
run: |
APP_NAME=$(ls build/macos/Build/Products/Release/ | grep -E '\.app$')
echo "APP_NAME=${APP_NAME}" >> $GITHUB_ENV
- name: Create DMG Installer
run: |
mkdir -p build/macos/Build/Products/Release/dmg
hdiutil create build/macos/Build/Products/Release/dmg/${{ env.APP_NAME }}-macOS.dmg \
-volname "IkarosApp Installer" \
-srcfolder build/macos/Build/Products/Release/${{ env.APP_NAME }} \
-ov -format UDZO
- name: Publish Macos Artefacts
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.LI_GUOHAO_TOKEN }}
file: build/macos/Build/Products/Release/dmg/${{ env.APP_NAME }}-macOS.dmg
asset_name: ikaros-macOS-${{ github.ref_name }}.dmg
build_linux:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
- name: Git submodule init
uses: snickerbockers/submodules-init@v4
- name: Install and set Flutter version
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.1'
channel: 'stable'
- name: Restore packages
run: flutter pub get
- name: Enable linux desktop
run: flutter config --enable-linux-desktop
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y ninja-build cmake g++ libgtk-3-dev vlc libvlc-dev
- name: Build Linux App Bundle
run: flutter build linux --release -v
- name: Create a tarball
env:
APP_NAME: $(find build/linux/x64/release/bundle -name "*.out" -exec basename {} .out \;)
VERSION: ${{ github.ref_name }}
run: |
mkdir -p build/linux/x64/release/${{ env.APP_NAME }}
cp -r build/linux/x64/release/bundle/* build/linux/x64/release/${{ env.APP_NAME }}/
tar -czvf build/linux/x64/release/${{ env.APP_NAME }}-linux.tar.gz -C build/linux/x64/release ${{ env.APP_NAME }}
cat <<EOF > build/linux/x64/release/${APP_NAME}/DEBIAN/control
Package: ${{ env.APP_NAME }}
Version: ${{ env.VERSION }}
Section: base
Priority: optional
Architecture: amd64
Depends: libgtk-3-0, libstdc++6
Maintainer: Chivehao <chivehao@ikaros.run>
Description: Ikaros flutter app.
EOF
- name: Publish Linux Artefacts
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.LI_GUOHAO_TOKEN }}
file: build/linux/x64/release/${{ env.APP_NAME }}-linux.tar.gz
asset_name: ikaros-linux-${{ github.ref_name }}.tar.gz
- name: Build DEB package
run: |
APP_NAME=$(ls build/linux/x64/release/bundle | grep .out | sed 's/.out//')
dpkg-deb --build build/linux/x64/release/${{ env.APP_NAME }}
- name: Publish DEB Linux/Ubuntu Artefacts
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.LI_GUOHAO_TOKEN }}
file: build/linux/x64/release/${{ env.APP_NAME }}.deb
asset_name: ikaros-ubuntu-${{ github.ref_name }}.deb