From b76fbf040ba96d88eb8b383c888fae755604c6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=93=BA=E7=9B=96=E5=B4=BD?= Date: Fri, 14 Feb 2025 09:18:21 +0800 Subject: [PATCH] add linux arm build (#16) * add linux arm build * Update build.py * Update main.yml * Update main.yml * Update debian.yaml --- .github/workflows/main.yml | 27 ++++++++++++++++++++++++--- debian/build.py | 12 ++++++++++-- debian/debian.yaml | 8 ++++---- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7e0c23b..b729b40 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -107,7 +107,7 @@ jobs: sudo apt-get update -y sudo apt-get install -y ninja-build libgtk-3-dev webkit2gtk-4.1 dart pub global activate flutter_to_debian - - run: python3 debian/build.py + - run: python3 debian/build.py x64 - run: dart run flutter_to_arch - run: | sudo rm -rf build/linux/arch/app.tar.gz @@ -122,10 +122,27 @@ jobs: with: name: arch_build path: build/linux/arch/ - + Build_Linux_ARM64: + runs-on: ubuntu-22.04-arm + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: 'master' + flutter-version-file: pubspec.yaml + - run: | + flutter pub get + sudo apt-get update -y + sudo apt-get install -y ninja-build libgtk-3-dev webkit2gtk-4.1 + dart pub global activate flutter_to_debian + - run: python3 debian/build.py arm64 + - uses: actions/upload-artifact@v4 + with: + name: deb_arm64_build + path: build/linux/x64/release/debian # This is a bug related to flutter_to_debian, but it's not a big deal. Release: runs-on: ubuntu-latest - needs: [Build_MacOS, Build_IOS, Build_Android, Build_Windows, Build_Linux] + needs: [Build_MacOS, Build_IOS, Build_Android, Build_Windows, Build_Linux, Build_Linux_ARM64] if: github.event_name == 'release' # 仅在 push 事件时执行 steps: - uses: actions/download-artifact@v4 @@ -152,6 +169,10 @@ jobs: with: name: arch_build path: outputs + - uses: actions/download-artifact@v4 + with: + name: deb_arm64_build + path: outputs - uses: softprops/action-gh-release@v2 with: tag_name: ${{ github.ref_name }} diff --git a/debian/build.py b/debian/build.py index 5b60c15..8a3acc5 100644 --- a/debian/build.py +++ b/debian/build.py @@ -1,6 +1,7 @@ import subprocess -import os +import sys +arch = sys.argv[1] debianContent = '' desktopContent = '' version = '' @@ -13,7 +14,14 @@ with open('pubspec.yaml', 'r') as f: version = str.split(str.split(f.read(), 'version: ')[1], '+')[0] with open('debian/debian.yaml', 'w') as f: - f.write(debianContent.replace('{{Version}}', version)) + content = debianContent.replace('{{Version}}', version) + if arch == 'x64': + content = content.replace('{{Arch}}', 'x64') + content = content.replace('{{Architecture}}', 'amd64') + elif arch == 'arm64': + content = content.replace('{{Arch}}', 'arm64') + content = content.replace('{{Architecture}}', 'arm64') + f.write(content) with open('debian/gui/pixes.desktop', 'w') as f: f.write(desktopContent.replace('{{Version}}', version)) diff --git a/debian/debian.yaml b/debian/debian.yaml index 5e38a94..306b6b3 100644 --- a/debian/debian.yaml +++ b/debian/debian.yaml @@ -1,6 +1,6 @@ flutter_app: command: pixes - arch: x64 + arch: {{Arch}} parent: /usr/local/lib nonInteractive: true execFieldCodes: u @@ -8,11 +8,11 @@ flutter_app: control: Package: pixes Version: {{Version}} - Architecture: amd64 + Architecture: {{Architecture}} Priority: optional - Depends: + Depends: libwebkit2gtk-4.1-0, libgtk-3-0 Maintainer: nyne Description: Unofficial pixiv application #options: -# exec_out_dir: debian/packages \ No newline at end of file +# exec_out_dir: debian/packages