Merge pull request #1 from LynnerHuXC/patch-1 #25
This file contains hidden or 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: "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 |