Skip to content

Merge pull request #1 from LynnerHuXC/patch-1 #25

Merge pull request #1 from LynnerHuXC/patch-1

Merge pull request #1 from LynnerHuXC/patch-1 #25

Workflow file for this run

name: "Build & Release"
on:
pull_request:
branches:
- dev
- test
- main
push:
branches:
- dev
- test
- main
jobs:
build-macos:
name: Build (IOS & MacOS)
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Flutter
uses: subosito/flutter-action@v2
- name: Install Dependencies
run: flutter pub get
- 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: Build MacOS
run: flutter build macos --release
- name: Rename MacOS Build
run: |
cd build/macos/Build/Products
mv Release OCMS-MacOS-$VERSION
- name: Upload Artifacts (MacOS)
uses: actions/upload-artifact@v4
with:
name: MacOS-${{ env.VERSION }}
path: |
build/macos/Build/Products/OCMS-MacOS-${{ env.VERSION }}/
compression-level: 9
- name: Build IPA
run: flutter build ipa --no-codesign
- name: Rename iOS Build
run: |
cd build
mv ios OCMS-iOS-$VERSION
- name: Upload Artifacts (iOS)
uses: actions/upload-artifact@v4
with:
name: iOS-${{ env.VERSION }}
path: |
build/OCMS-iOS-${{ env.VERSION }}/
compression-level: 9
build-windows:
name: Build (Windows)
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Flutter
uses: subosito/flutter-action@v2
- name: Install Dependencies
run: flutter pub get
- name: Build Windows
run: flutter build windows --release
- name: Extract version from pubspec.yaml
id: extract_version
run: |
$version = (Get-Content "pubspec.yaml" | Select-String "^version: ").Line.Split(" ")[1]
echo "VERSION=$version" >> $env:GITHUB_ENV
- name: Rename Windows Build
run: |
cd build/windows/x64/runner
Rename-Item -Path "Release" -NewName "OCMS-Win64-$env:VERSION"
- name: Upload Windows Artifacts
uses: actions/upload-artifact@v4
with:
name: Win64-${{ env.VERSION }}
path: |
build/windows/x64/runner/OCMS-Win64-${{ env.VERSION }}/
compression-level: 9
build-linux:
name: Build (Linux & Android)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Up Java
uses: actions/[email protected]
with:
distribution: 'oracle'
java-version: '17'
- name: Setup Flutter
uses: subosito/flutter-action@v2
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libsecret-1-dev
sudo apt-get install -y appindicator3-1 || echo "appindicator3-1 installation failed, continuing..."
sudo apt-get install -y libappindicator3-dev || echo "libappindicator3-dev installation failed, continuing..."
flutter pub get
- name: Decode Keystore
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/keystore.jks
- name: Create key.properties
run: |
echo "storePassword=${{ secrets.KEYSTORE_PASSWORD }}" > android/key.properties
echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties
echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties
echo "storeFile=keystore.jks" >> android/key.properties
- name: Build APK
run: flutter build apk --release --split-per-abi
- 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: Rename APK files
run: |
cd build/app/outputs/flutter-apk
mv app-armeabi-v7a-release.apk OCMS-Android-armeabi-v7a-$VERSION.apk
mv app-arm64-v8a-release.apk OCMS-Android-arm64-v8a-$VERSION.apk
mv app-x86_64-release.apk OCMS-Android-x86_64-$VERSION.apk
- name: Upload Artifacts (Android-Armeabi-v7a)
uses: actions/upload-artifact@v4
with:
name: Android-Armeabi-v7a-${{ env.VERSION }}
path: |
build/app/outputs/flutter-apk/OCMS-Android-armeabi-v7a-${{ env.VERSION }}.apk
compression-level: 9
- name: Upload Artifacts (Android-Arm64-v8a)
uses: actions/upload-artifact@v4
with:
name: Android-Arm64-v8a-${{ env.VERSION }}
path: |
build/app/outputs/flutter-apk/OCMS-Android-arm64-v8a-${{ env.VERSION }}.apk
compression-level: 9
- name: Upload Artifacts (Android-X86_64)
uses: actions/upload-artifact@v4
with:
name: Android-X86_64-${{ env.VERSION }}
path: |
build/app/outputs/flutter-apk/OCMS-Android-x86_64-${{ env.VERSION }}.apk
compression-level: 9
- name: Build linux
run: flutter build linux --release
- name: Rename Linux Build
run: |
cd build/linux/x64/release/
mv bundle OCMS-Linux-$VERSION
- name: Upload Artifacts (Linux)
uses: actions/upload-artifact@v4
with:
name: OCMS-Linux-${{ env.VERSION }}
path: |
build/linux/x64/release/OCMS-Linux-${{ env.VERSION }}/
compression-level: 9