diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1f425d618247..bce54383d90e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -134,7 +134,17 @@ jobs: name: apk-x86_64-build-legacy path: app/linwood-butterfly-android-x86_64-legacy.apk build-windows: - runs-on: windows-2025 + strategy: + fail-fast: false + matrix: + arch: + - image: windows-2025 + name: x86_64 + dir: x64 + - image: windows-11-arm + name: arm64 + dir: arm64 + runs-on: ${{ matrix.arch.image }} defaults: run: working-directory: app @@ -148,7 +158,10 @@ jobs: - uses: subosito/flutter-action@v2.21.0 with: flutter-version-file: app/pubspec.yaml + channel: "master" cache: true + cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:" + cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" - name: ✅ Enable platforms run: flutter config --enable-windows-desktop - name: 📦 Get dependencies @@ -170,23 +183,22 @@ jobs: run: | Get-Content pubspec.yaml | Select-String -Pattern 'version:\s(.+)\+' | % {Set-Item -Path Env:BUTTERFLY_VERSION -Value "$($_.matches.groups[1])"} & 'C:/Program Files (x86)/Inno Setup 6/ISCC.exe' /DMyAppVersion=$Env:BUTTERFLY_VERSION ButterflySetup.iss - # flutter pub run msix:create - name: Copy portable start script run: | - cp scripts/start.bat build/windows/x64/runner/Release/ - cp build/windows/x64/linwood-butterfly-windows-setup.exe linwood-butterfly-windows-setup-x86_64.exe + cp scripts/start.bat build/windows/${{ matrix.arch.dir }}/runner/Release/ + cp build/windows/${{ matrix.arch.dir }}/linwood-butterfly-windows-setup.exe linwood-butterfly-windows-setup-${{ matrix.arch.name }}.exe - name: Archive uses: actions/upload-artifact@v5 with: - name: windows-build + name: windows-${{ matrix.arch.name }}-build path: | - app/build/windows/x64/runner/Release/** + app/build/windows/${{ matrix.arch.dir }}/runner/Release/** - name: Archive uses: actions/upload-artifact@v5 with: - name: windows-setup + name: windows-${{ matrix.arch.name }}-setup path: | - app/linwood-butterfly-windows-setup-x86_64.exe + app/linwood-butterfly-windows-setup-${{ matrix.arch.name }}.exe build-msix: name: build-msix runs-on: windows-2025 @@ -580,8 +592,12 @@ jobs: name: apk-x86_64-build-legacy - uses: actions/download-artifact@v6 with: - name: windows-build - path: windows-build/ + name: windows-arm64-build + path: windows-arm64-build/ + - uses: actions/download-artifact@v6 + with: + name: windows-x86_64-build + path: windows-x86_64-build/ - uses: actions/download-artifact@v6 with: name: linux-x86_64-build @@ -636,7 +652,10 @@ jobs: name: linux-alternative-arm64-appimage - uses: actions/download-artifact@v6 with: - name: windows-setup + name: windows-x86_64-setup + - uses: actions/download-artifact@v6 + with: + name: windows-arm64-setup - uses: actions/download-artifact@v6 with: name: macos-build @@ -648,8 +667,10 @@ jobs: name: ipa-build - name: 📦 Zip artifacts run: | - cd windows-build + cd windows-x86_64-build zip -r ../linwood-butterfly-windows-x86_64.zip * + cd windows-arm64-build + zip -r ../linwood-butterfly-windows-arm64.zip * cd .. tar -C linux-x86_64-build -czf linwood-butterfly-linux-x86_64.tar.gz . tar -C linux-arm64-build -czf linwood-butterfly-linux-arm64.tar.gz . @@ -689,6 +710,8 @@ jobs: files: | linwood-butterfly-windows-setup-x86_64.exe linwood-butterfly-windows-x86_64.zip + linwood-butterfly-windows-setup-arm64.exe + linwood-butterfly-windows-arm64.zip linwood-butterfly-linux-x86_64.tar.gz linwood-butterfly-linux-x86_64.deb linwood-butterfly-linux-x86_64.rpm @@ -729,6 +752,8 @@ jobs: files: | linwood-butterfly-windows-setup-x86_64.exe linwood-butterfly-windows-x86_64.zip + linwood-butterfly-windows-setup-arm64.exe + linwood-butterfly-windows-arm64.zip linwood-butterfly-linux-x86_64.tar.gz linwood-butterfly-linux-x86_64.deb linwood-butterfly-linux-x86_64.rpm @@ -767,6 +792,8 @@ jobs: files: | linwood-butterfly-windows-setup-x86_64.exe linwood-butterfly-windows-x86_64.zip + linwood-butterfly-windows-setup-arm64.exe + linwood-butterfly-windows-arm64.zip linwood-butterfly-linux-x86_64.tar.gz linwood-butterfly-linux-x86_64.deb linwood-butterfly-linux-x86_64.rpm