Skip to content

add android and ios build to github actions #78

add android and ios build to github actions

add android and ios build to github actions #78

Workflow file for this run

name: Flutter CI
on: push
jobs:
build-and-release-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: x64
flutter-version: '3.19.1'
- name: Update dependencies
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-0 libgtk-3-dev libblkid1 liblzma5
- name: Install project dependencies
run: flutter pub get
- name: Enable linux build
run: flutter config --enable-linux-desktop
- name: Build artifacts
run: flutter build linux --release
- name: Build Appimage
run: bash ./github_appimage_build.sh
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Linux Release
uses: actions/upload-artifact@v4
with:
name: Renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-linux
path: build/linux/x64/release/bundle
- name: Linux Appimage Release
uses: actions/upload-artifact@v4
with:
name: Renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-appimage
path: Renamer-x86_64.AppImage
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- name: decode key base64
run: echo $KEYSTORE_BASE64 | base64 -di > $HOME/renamer.jks
env:
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
- run: flutter build apk --release
env:
KEYSTORE: $HOME/renamer.jks
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD}}
- name: Android Release
uses: actions/upload-artifact@v1
with:
name: renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-release-apk
path: build/app/outputs/apk/release/app-release.apk
build-and-release-windows:
runs-on: windows-latest
steps:
- name: check current path
run: cd
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: x64
flutter-version: '3.19.1'
- name: Install project dependencies
run: flutter pub get
- name: Enable windows build
run: flutter config --enable-windows-desktop
- name: Build artifacts
run: flutter build windows --release
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 20
- name: install evb
run: npm install enigmavirtualbox -g
- name: build single exe file
run: enigmavirtualbox cli ".\evb\renamer.evb"
- name: Set outputs
id: vars
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: Windows Release
uses: actions/upload-artifact@v4
with:
name: renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-windows
path: renamer.exe
build-and-release-macos:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: x64
flutter-version: '3.19.1'
- name: Install project dependencies
run: flutter pub get
- name: Enable macOS build
run: flutter config --enable-macos-desktop
- name: Build artifacts
run: flutter build macos --release
- name: install npm
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: install appdmg
run: npm install -g appdmg
- name: build dmg
run: appdmg ./dmg/config.json ./build/macos/Build/Products/Release/renamer.dmg
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: macOS Release
uses: actions/upload-artifact@v4
with:
name: renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-macos
path: build/macos/Build/Products/Release/renamer.dmg
- name: Build ios
run: |
flutter build ios --release --no-codesign
ln -sf ./build/ios/iphoneos Payload
zip -r9 renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-release.ipa Payload/runner.app
- name: ios Release
uses: actions/upload-artifact@v4
with:
name: renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-ios
path: renamer-${{github.ref_name}}-${{ steps.vars.outputs.sha_short }}-release.ipa