Skip to content

Upgraded workflows

Upgraded workflows #15

Workflow file for this run

name: Publish Windows and Android apps
# Builds a Windows App Installer (.msix) for the Dashboard
#
# To use this action, add your Windows Certificate file, in base64 format, to a
# repository secret called WINDOWS_CERTIFICATE. This action then:
# - Installs Flutter and clones your repository
# - Decodes your text certificate into a binary .pfx file
# - Runs flutter pub run msix:create to build and sign your Flutter app
# - Creates a new release and uploads the generated .msix file to it
on:
push:
tags: "*"
jobs:
build_android:
name: Build Android APK
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v2
with:
distribution: "zulu"
java-version: '17'
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
cache: true
cache-key: "flutter-ubuntu" # we don't need *the* most recent build
- name: Build APK
run: flutter build apk
- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: dashboard_android
path: build/app/outputs/apk/release/app-release.apk
# End of build_android
build_windows:
name: Build Windows MSIX
runs-on: windows-latest
env:
windows_certificate: ${{ secrets.WINDOWS_CERTIFICATE }}
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Load certificate
run: |
echo "${{ env.windows_certificate }}" > windows_certificate_decoded.txt
openssl enc -base64 -d -in windows_certificate_decoded.txt -out windows_certificate.pfx
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
cache: true
cache-key: "flutter-windows" # we don't need *the* most recent build
- name: Build MSIX
run: |
flutter pub get
dart run msix:create
- name: Upload MSIX
uses: actions/upload-artifact@v4
with:
name: dashboard_windows
path: build/windows/x64/runner/Release/dashboard.msix
# End of build_windows
generate_release:
needs: [build_android, build_windows]
runs-on: ubuntu-latest
steps:
- name: Download Android release
uses: actions/download-artifact@v4
with:
name: dashboard_android
- name: Download Windows release
uses: actions/download-artifact@v4
with:
name: dashboard_windows
- name: Organize files
run: |
mv dashboard_android/app-release.apk dashboard_android.apk
mv dashboard_windows/dashboard.msix dashboard_windows.msix
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
dashboard_android.apk
dashboard_windows.msix
name: ${{ github.ref_name }}
generate_release_notes: true
fail_on_unmatched_files: true
# end of generate_release