Skip to content

Build Fladder

Build Fladder #44

Workflow file for this run

name: Build Fladder artifacts
on:
push:
tags:
- "v*"
branches:
- master
workflow_dispatch:
jobs:
# build-android:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/[email protected]
# - name: Decode Keystore
# env:
# ENCODED_STRING: ${{ secrets.KEYSTORE_BASE_64 }}
# RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
# RELEASE_KEYSTORE_ALIAS: ${{ secrets.RELEASE_KEYSTORE_ALIAS }}
# RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }}
# GITHUB_RUN_NUMBER: ${{ github.run_number }}
# run: |
# echo "$ENCODED_STRING" | base64 -d > android/app/keystore.jks
# # Create the key.properties file
# cat > android/app/key.properties <<EOF
# storePassword=$RELEASE_KEYSTORE_PASSWORD
# keyPassword=$RELEASE_KEY_PASSWORD
# keyAlias=$RELEASE_KEYSTORE_ALIAS
# EOF
# - name: Setup Java
# uses: actions/setup-java@v4
# with:
# distribution: "zulu"
# java-version: "17"
# cache: "gradle"
# check-latest: true
# - name: Set up Flutter
# uses: subosito/[email protected]
# with:
# channel: ${{ vars.FLUTTER_CHANNEL }}
# flutter-version: ${{ vars.FLUTTER_VERSION }}
# cache: true
# cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
# cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
# - name: Get dependencies
# run: flutter pub get
# - name: Build Android APK and AAB
# run: |
# APP_NAME=$(grep '^name:' pubspec.yaml | cut -d ':' -f2 | tr -d ' ')
# VERSION_NAME=$(grep '^version:' pubspec.yaml | cut -d ':' -f2 | cut -d '+' -f1 | tr -d ' ')
# echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
# echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
# # Build APK
# flutter build apk --release \
# --build-name=$VERSION_NAME \
# --build-number=$GITHUB_RUN_NUMBER \
# --dart-define=FLAVOR=release
# # Build AAB
# flutter build appbundle --release \
# --build-name=$VERSION_NAME \
# --build-number=$GITHUB_RUN_NUMBER \
# --dart-define=FLAVOR=release
# - name: Rename APK and AAB
# run: |
# mv build/app/outputs/flutter-apk/app-release.apk "build/app/outputs/flutter-apk/${{ env.APP_NAME }}-${{ env.VERSION_NAME }}-signed.apk"
# mv build/app/outputs/bundle/release/app-release.aab "build/app/outputs/bundle/release/${{ env.APP_NAME }}-${{ env.VERSION_NAME }}-signed.aab"
# - name: Archive Android artifacts
# uses: actions/[email protected]
# with:
# name: ${{ env.APP_NAME }}-Android-${{ env.VERSION_NAME }}
# path: |
# build/app/outputs/flutter-apk/${{ env.APP_NAME }}-${{ env.VERSION_NAME }}-signed.apk
# build/app/outputs/bundle/release/${{ env.APP_NAME }}-${{ env.VERSION_NAME }}-signed.aab
# build-windows:
# #Use windows-2019, latest(2022) causes MSVCP140.dll related crashes
# runs-on: windows-2019
# steps:
# - name: Checkout repository
# uses: actions/[email protected]
# - name: Set up Flutter
# uses: subosito/[email protected]
# with:
# channel: ${{ vars.FLUTTER_CHANNEL }}
# flutter-version: ${{ vars.FLUTTER_VERSION }}
# 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
# - name: Get dependencies
# run: flutter pub get
# - name: Build Windows EXE
# run: |
# $pubspec = Get-Content pubspec.yaml
# $APP_NAME = ($pubspec | Select-String '^name:' | ForEach-Object { ($_ -split ':')[1].Trim() })
# $VERSION_NAME = ($pubspec | Select-String '^version:' | ForEach-Object { ($_ -split ':')[1].Trim().Split('+')[0] })
# $BUILD_NUMBER = ${{ github.run_number }}
# echo "APP_NAME=$APP_NAME" >> $Env:GITHUB_ENV
# echo "VERSION_NAME=$VERSION_NAME" >> $Env:GITHUB_ENV
# flutter build windows --build-name=$VERSION_NAME --build-number=$BUILD_NUMBER
# - name: Archive Windows artifact
# uses: actions/[email protected]
# with:
# name: ${{ env.APP_NAME }}-Windows-${{ env.VERSION_NAME }}
# path: build\windows\x64\runner\Release\
# build-ios:
# runs-on: macos-latest
# steps:
# - name: Checkout repository
# uses: actions/[email protected]
# - name: Set up Flutter
# uses: subosito/[email protected]
# with:
# channel: ${{ vars.FLUTTER_CHANNEL }}
# flutter-version: ${{ vars.FLUTTER_VERSION }}
# cache: true
# cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:" # optional
# cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional
# - name: Get dependencies
# run: flutter pub get
# - name: Build iOS app
# run: |
# APP_NAME=$(grep '^name:' pubspec.yaml | cut -d ':' -f2 | tr -d ' ')
# VERSION_NAME=$(grep '^version:' pubspec.yaml | cut -d ':' -f2 | cut -d '+' -f1 | tr -d ' ')
# echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
# echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
# flutter build ipa --no-codesign
# - name: Export IPA from .xcarchive
# run: |
# xcodebuild -exportArchive \
# -archivePath build/ios/archive/Runner.xcarchive \
# -exportOptionsPlist ios/exportOptions.plist \
# -exportPath build/ios/ipa
# - name: Archive iOS IPA artifact
# uses: actions/[email protected]
# with:
# name: ios-${{ env.VERSION_NAME }}
# path: build/ios/ipa/*.ipa
# build-macos:
# runs-on: macos-latest
# steps:
# - name: Checkout repository
# uses: actions/[email protected]
# - name: Set up Flutter
# uses: subosito/[email protected]
# with:
# channel: ${{ vars.FLUTTER_CHANNEL }}
# flutter-version: ${{ vars.FLUTTER_VERSION }}
# 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
# - name: Get dependencies
# run: flutter pub get
# - name: Build macOS app
# run: |
# APP_NAME=$(grep '^name:' pubspec.yaml | cut -d ':' -f2 | tr -d ' ')
# VERSION_NAME=$(grep '^version:' pubspec.yaml | cut -d ':' -f2 | cut -d '+' -f1 | tr -d ' ')
# echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
# echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
# flutter build macos
# - name: Create DMG file
# run: |
# hdiutil create -format UDZO -srcfolder build/macos/Build/Products/Release/fladder.app build/macos/Build/Products/Release/fladder.dmg
# - name: Archive macOS artifact
# uses: actions/[email protected]
# with:
# name: ${{ env.APP_NAME }}-macOS-${{ env.VERSION_NAME }}
# path: build/macos/Build/Products/Release/fladder.dmg
# build-linux:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/[email protected]
# - name: Set up Flutter
# uses: subosito/[email protected]
# with:
# channel: ${{ vars.FLUTTER_CHANNEL }}
# flutter-version: ${{ vars.FLUTTER_VERSION }}
# 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
# - name: Get dependencies
# run: flutter pub get
# - name: Get packages
# run: |
# sudo apt-get update -y
# sudo apt-get install -y ninja-build libgtk-3-dev
# - name: Build Linux app
# run: flutter build linux
# - name: Archive Linux artifact
# uses: actions/upload-artifact@v2
# with:
# name: linux
# path: build/linux/x64/release/bundle
build-web:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Set up Flutter
uses: subosito/[email protected]
with:
channel: ${{ vars.FLUTTER_CHANNEL }}
flutter-version: ${{ vars.FLUTTER_VERSION }}
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
- name: Get dependencies
run: flutter pub get
- name: Build web app
run: |
APP_NAME=$(grep '^name:' pubspec.yaml | cut -d ':' -f2 | tr -d ' ')
VERSION_NAME=$(grep '^version:' pubspec.yaml | cut -d ':' -f2 | cut -d '+' -f1 | tr -d ' ')
echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
flutter build web --base-href /Fladder/ --release
- name: Archive web artifact
uses: actions/[email protected]
with:
name: ${{ env.APP_NAME }}-Web-${{ env.VERSION_NAME }}
path: build/web
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }} # Automatically provided by GitHub Actions
publish_dir: ./build/web