Skip to content

Merge branch 'master' of https://github.com/ICCM-EU/iccm_eu_app #68

Merge branch 'master' of https://github.com/ICCM-EU/iccm_eu_app

Merge branch 'master' of https://github.com/ICCM-EU/iccm_eu_app #68

Workflow file for this run

name: Flutter Build
on: ["push", "pull_request"]
jobs:
build-and-release-android:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
name: Cache Flutter dependencies
with:
path: |
~/.pub-cache
/flutter
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-flutter-
#- name: Set Up Java
# uses: actions/setup-java@v4
# with:
# distribution: 'oracle'
# java-version: '17'
- name: Setup Flutter SDK
uses: subosito/flutter-action@v2
with:
# flutter-version: 'stable' # Or specify a specific version
flutter-version-file: pubspec.yaml
channel: 'stable' # Or specify a specific channel
- name: Get Flutter dependencies
run: flutter pub get
# Build
- name: Build Android APK
run: flutter build apk --release
- name: Build Android App Bundle (AAB)
run: flutter build appbundle
#- name: Upload Artifacts
# uses: actions/upload-artifact@v4
# with:
# name: Releases
# path: |
# build/app/outputs/flutter-apk/app-release.apk
# build/app/outputs/bundle/release/app-release.aab
#- name: Extract version from pubspec.yaml
# id: extract_version
# run: |
# version=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2 | tr -d '\r')
# echo "VERSION=$version" >> $GITHUB_ENV
#- name: Check if Tag Exists
# id: check_tag
# run: |
# if git rev-parse "v${{ env.VERSION }}" >/dev/null 2>&1; then
# echo "TAG_EXISTS=true" >> $GITHUB_ENV
# else
# echo "TAG_EXISTS=false" >> $GITHUB_ENV
# fi
#- name: Modify Release Tag
# if: env.TAG_EXISTS == 'true'
# id: modify_tag
# run: |
# new_version="${{ env.VERSION }}-build-${{ github.run_number }}"
# echo "VERSION=$new_version" >> $GITHUB_ENV
#- name: Create Release
# uses: ncipollo/release-action@v1
# with:
# artifacts: "build/app/outputs/flutter-apk/app-release.apk,build/app/outputs/bundle/release/app-release.aab"
# tag: v${{ env.VERSION }}
# token: ${{ secrets.TOKEN }}
- uses: actions/upload-artifact@v4
with:
name: iccm_eu_app-android-apk
path: build/app/outputs/flutter-apk/app-release.apk
build-and-release-ios:
runs-on: macos-latest # to be able to get ios build
if: false # Deactivate until we find a maintainer
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
name: Cache Flutter dependencies
with:
path: |
~/.pub-cache
/flutter
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-flutter-
#- name: Set Up Java
# uses: actions/setup-java@v4
# with:
# distribution: 'oracle'
# java-version: '17'
- name: Setup Flutter SDK
uses: subosito/flutter-action@v2
with:
# flutter-version: 'stable' # Or specify a specific version
flutter-version-file: pubspec.yaml
channel: 'stable' # Or specify a specific channel
- name: Get Flutter dependencies
run: flutter pub get
# Build
- name: Build IPA (iOS Build)
run: flutter build ipa --no-codesign
- name: Compress Archives and IPAs
run: |
cd build
tar -czf ios_build.tar.gz ios
#- name: Upload Artifacts
# uses: actions/upload-artifact@v4
# with:
# name: Releases
# path: |
# build/ios_build.tar.g
#- name: Extract version from pubspec.yaml
# id: extract_version
# run: |
# version=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2 | tr -d '\r')
# echo "VERSION=$version" >> $GITHUB_ENV
#- name: Check if Tag Exists
# id: check_tag
# run: |
# if git rev-parse "v${{ env.VERSION }}" >/dev/null 2>&1; then
# echo "TAG_EXISTS=true" >> $GITHUB_ENV
# else
# echo "TAG_EXISTS=false" >> $GITHUB_ENV
# fi
#- name: Modify Release Tag
# if: env.TAG_EXISTS == 'true'
# id: modify_tag
# run: |
# new_version="${{ env.VERSION }}-build-${{ github.run_number }}"
# echo "VERSION=$new_version" >> $GITHUB_ENV
#- name: Create Release
# uses: ncipollo/release-action@v1
# with:
# artifacts: "build/ios_build.tar.gz"
# tag: v${{ env.VERSION }}
# token: ${{ secrets.TOKEN }}
- uses: actions/upload-artifact@v4
with:
name: iccm_eu_app-ios-app
path: build/ios/archive/
build-and-release-windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
name: Cache Flutter dependencies
with:
path: |
~/.pub-cache
/flutter
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-flutter-
- name: Install yq # as a prerequisite for flutter-version-file parsing
uses: dcarbone/[email protected]
- name: Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
#flutter-version: '2.10.0'
flutter-version-file: pubspec.yaml
- name: Install project dependencies
run: flutter pub get
#- name: Generate intermediates
# run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Enable windows build
run: flutter config --enable-windows-desktop
- name: Build artifacts
run: flutter build windows --release
- uses: actions/upload-artifact@v4
with:
name: iccm_eu_app-windows-desktop
path: build/windows/x64/runner/Release
#- name: Archive Release
# uses: thedoctor0/zip-release@master
# with:
# type: 'zip'
# filename: ${{github.ref_name}}-windows.zip
# directory: build/windows/x64/runner/Release
#- name: Windows Release
# uses: softprops/action-gh-release@v1
# if: startsWith(github.ref, 'refs/tags/')
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# files: build/windows/runner/Release/MacRecoveryX-${{github.ref_name}}-windows.zip
build-and-release-macos:
runs-on: macos-latest
if: false # Deactivate until we find a maintainer
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
name: Cache Flutter dependencies
with:
path: |
~/.pub-cache
/flutter
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-flutter-
- name: Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
# flutter-version: '2.10.0'
flutter-version-file: pubspec.yaml
- name: Install project dependencies
run: flutter pub get
#- name: Generate intermediates
# run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Enable macOS build
run: flutter config --enable-macos-desktop
- name: Build artifacts
run: flutter build macos --release
- uses: actions/upload-artifact@v4
with:
name: iccm_eu_app-macos-desktop
path: build/macos/Build/Products/Release
#- name: Archive Release
# uses: thedoctor0/zip-release@master
# with:
# type: 'zip'
# filename: MacRecoveryX-${{github.ref_name}}-macos.zip
# directory: build/macos/Build/Products/Release
#- name: macOS Release
# uses: softprops/action-gh-release@v1
# if: startsWith(github.ref, 'refs/tags/')
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# files: build/macos/Build/Products/Release/MacRecoveryX-${{github.ref_name}}-macos.zip
build-and-release-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
name: Cache Flutter dependencies
with:
path: |
~/.pub-cache
/flutter
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
restore-keys: |
${{ runner.os }}-flutter-
- name: Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
# flutter-version: '2.10.0'
flutter-version-file: pubspec.yaml
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
- name: Install project dependencies
run: flutter pub get
#- name: Generate intermediates
# run: flutter pub run build_runner build --delete-conflicting-outputs
# Build
- name: Build for Web
run: flutter build web --base-href "/iccm_eu_app/" --release
- name: Enable linux build
run: flutter config --enable-linux-desktop
- name: Build artifacts
run: flutter build linux --release
- uses: actions/upload-artifact@v4
with:
name: iccm_eu_app-linux-desktop
path: build/linux/x64/release/bundle
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/master'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: build/web
#- name: Archive Release
# uses: thedoctor0/zip-release@master
# with:
# type: 'zip'
# filename: MacRecoveryX-${{github.ref_name}}-linux.zip
# directory: build/linux/x64/release/bundle
#- name: Linux Release
# uses: softprops/action-gh-release@v1
# if: startsWith(github.ref, 'refs/tags/')
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# files: build/linux/x64/release/bundle/MacRecoveryX-${{github.ref_name}}-linux.zip