Upgraded workflows #15
Workflow file for this run
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: 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 |