Skip to content

Commit 568fdba

Browse files
committed
Add linux arm
1 parent 20645e5 commit 568fdba

File tree

8 files changed

+149
-54
lines changed

8 files changed

+149
-54
lines changed

.github/workflows/build.yml

Lines changed: 137 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,17 @@ jobs:
154154
path: |
155155
app/linwood-setonix-windows-setup-x86_64.exe
156156
build-linux:
157-
runs-on: ubuntu-24.04
157+
strategy:
158+
fail-fast: false
159+
matrix:
160+
arch:
161+
- image: ubuntu-24.04
162+
name: x86_64
163+
dir: x64
164+
- image: ubuntu-24.04-arm
165+
name: arm64
166+
dir: arm64
167+
runs-on: ${{ matrix.arch.image }}
158168
defaults:
159169
run:
160170
working-directory: app
@@ -188,6 +198,10 @@ jobs:
188198
- uses: subosito/flutter-action@v2.18.0
189199
with:
190200
flutter-version-file: app/pubspec.yaml
201+
channel: 'master'
202+
cache: true
203+
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:'
204+
cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:'
191205
- name: ✅ Enable platforms
192206
run: flutter config --enable-linux-desktop
193207
- name: 📦 Get dependencies
@@ -214,64 +228,77 @@ jobs:
214228
flutter build linux -v --release --dart-define=flavor=production
215229
- name: 🏭 Make binary executable
216230
run: |
217-
chmod +x build/linux/x64/release/bundle/setonix
231+
chmod +x build/linux/${{ matrix.arch.dir }}/release/bundle/setonix
218232
- name: Build .deb executable
219233
run: |
220-
cp -fr build/linux/x64/release/bundle linux/debian/usr/bin
234+
cp -fr build/linux/${{ matrix.arch.dir }}/release/bundle linux/debian/usr/bin
221235
dpkg-deb --build --root-owner-group linux/debian
222-
cp linux/*.deb linwood-setonix-linux-x86_64.deb
236+
cp linux/*.deb linwood-setonix-linux-${{ matrix.arch.name }}.deb
223237
- name: Build .rpm executable
224238
run: |
225-
bash scripts/build-rpm.sh
239+
bash scripts/build-rpm.sh -d ${{ matrix.arch.dir }} -b ${{ matrix.arch.name }}
226240
- name: Build .AppImage executable
241+
if: ${{ matrix.arch.name == 'x86_64' }}
227242
run: |
228-
wget -O appimage-builder-x86_64.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
229-
chmod +x appimage-builder-x86_64.AppImage
230-
sudo mv appimage-builder-x86_64.AppImage /usr/local/bin/appimage-builder
243+
wget -O appimage-builder.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
244+
chmod +x appimage-builder.AppImage
245+
sudo mv appimage-builder.AppImage /usr/local/bin/appimage-builder
231246
appimage-builder --recipe AppImageBuilder.yml --skip-test
232247
- name: Copy nessessary files
233248
run: |
234-
cp assets/images/logo.svg build/linux/x64/release/bundle/dev.linwood.setonix.svg
235-
mkdir -p build/linux/x64/release/bundle/usr/share
236-
cp -r linux/debian/usr/share build/linux/x64/release/bundle/usr
249+
cp assets/images/logo.svg build/linux/${{ matrix.arch.dir }}/release/bundle/dev.linwood.setonix.svg
250+
mkdir -p build/linux/${{ matrix.arch.dir }}/release/bundle/usr/share
251+
cp -r linux/debian/usr/share build/linux/${{ matrix.arch.dir }}/release/bundle/usr
237252
- name: Rename AppImage
253+
if: ${{ matrix.arch.name == 'x86_64' }}
238254
run: |
239255
ls
240-
mv ./*.AppImage linwood-setonix-linux-x86_64.AppImage
256+
mv ./*.AppImage linwood-setonix-linux-${{ matrix.arch.name }}.AppImage
241257
- name: Copy portable start script
242258
run: |
243259
chmod +x scripts/start.sh
244-
cp scripts/start.sh build/linux/x64/release/bundle
260+
cp scripts/start.sh build/linux/${{ matrix.arch.dir }}/release/bundle
245261
- name: Archive
246262
uses: actions/upload-artifact@v4
247263
with:
248-
name: linux-build
264+
name: linux-${{ matrix.arch.name }}-build
249265
path: |
250-
app/build/linux/x64/release/bundle/**
266+
app/build/linux/${{ matrix.arch.dir }}/release/bundle/**
251267
- name: Archive .deb
252268
uses: actions/upload-artifact@v4
253269
with:
254-
name: linux-deb
270+
name: linux-${{ matrix.arch.name }}-deb
255271
path: |
256-
app/linwood-setonix-linux-x86_64.deb
272+
app/linwood-setonix-linux-${{ matrix.arch.name }}.deb
257273
- name: Archive .rpm
258274
uses: actions/upload-artifact@v4
259275
with:
260-
name: linux-rpm
276+
name: linux-${{ matrix.arch.name }}-rpm
261277
path: |
262-
app/build/linwood-setonix-linux-x86_64.rpm
278+
app/build/linwood-setonix-linux-${{ matrix.arch.name }}.rpm
263279
- name: Archive .AppImage
264280
uses: actions/upload-artifact@v4
281+
if: ${{ matrix.arch.name == 'x86_64' }}
265282
with:
266-
name: linux-appimage
283+
name: linux-x86_64-appimage
267284
path: |
268285
app/linwood-setonix-linux-x86_64.AppImage
269286
build-flatpak:
270287
name: build-flatpak
271-
runs-on: ubuntu-22.04
272288
defaults:
273289
run:
274290
working-directory: app
291+
strategy:
292+
fail-fast: false
293+
matrix:
294+
arch:
295+
- image: ubuntu-22.04
296+
name: x86_64
297+
dir: x64
298+
- image: ubuntu-22.04-arm
299+
name: arm64
300+
dir: arm64
301+
runs-on: ${{ matrix.arch.image }}
275302
steps:
276303
- name: ⬆️ Checkout
277304
uses: actions/checkout@v4
@@ -301,6 +328,10 @@ jobs:
301328
- uses: subosito/flutter-action@v2.18.0
302329
with:
303330
flutter-version-file: app/pubspec.yaml
331+
channel: 'master'
332+
cache: true
333+
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:'
334+
cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:'
304335
- name: ✅ Enable platforms
305336
run: flutter config --enable-linux-desktop
306337
- name: 📦 Get dependencies
@@ -327,11 +358,11 @@ jobs:
327358
flutter build linux -v --release --dart-define=flavor=production
328359
- name: Copy nessessary files
329360
run: |
330-
cp assets/images/logo.svg build/linux/x64/release/bundle/dev.linwood.setonix.svg
331-
mkdir -p build/linux/x64/release/bundle/usr/share
332-
cp -r linux/debian/usr/share build/linux/x64/release/bundle/usr
361+
cp assets/images/logo.svg build/linux/${{ matrix.arch.dir }}/release/bundle/dev.linwood.setonix.svg
362+
mkdir -p build/linux/${{ matrix.arch.dir }}/release/bundle/usr/share
363+
cp -r linux/debian/usr/share build/linux/${{ matrix.arch.dir }}/release/bundle/usr
333364
- name: Compress Flutter build
334-
run: tar -C build/linux/x64/release/bundle -czf linwood-setonix-linux-portable-x86_64.tar.gz .
365+
run: tar -C build/linux/${{ matrix.arch.dir }}/release/bundle -czf linwood-setonix-linux-portable-${{ matrix.arch.name }}.tar.gz .
335366
# - name: Install flatpak
336367
# run: |
337368
# sudo apt-get update
@@ -354,8 +385,8 @@ jobs:
354385
- name: Archive old portable
355386
uses: actions/upload-artifact@v4
356387
with:
357-
name: linux-alternative-portable
358-
path: app/build/linux/x64/release/bundle
388+
name: linux-${{ matrix.arch.name }}-alternative-build
389+
path: app/build/linux/${{ matrix.arch.dir }}/release/bundle
359390
build-macos:
360391
runs-on: macos-latest
361392
defaults:
@@ -485,9 +516,11 @@ jobs:
485516
matrix:
486517
os:
487518
- name: ubuntu-24.04
488-
label: linux
519+
label: linux-x86_64
520+
- name: ubuntu-24.04-arm
521+
label: linux-arm64
489522
- name: windows-2022
490-
label: windows
523+
label: windows-x86_64
491524
- name: macos-latest
492525
label: macos
493526
runs-on: ${{ matrix.os.name }}
@@ -578,21 +611,35 @@ jobs:
578611
path: windows-build/
579612
- uses: actions/download-artifact@v4
580613
with:
581-
name: linux-build
582-
path: linux-build/
614+
name: linux-x86_64-build
615+
path: linux-x86_64-build/
616+
- uses: actions/download-artifact@v4
617+
with:
618+
name: linux-x86_64-deb
619+
- uses: actions/download-artifact@v4
620+
with:
621+
name: linux-x86_64-rpm
622+
- uses: actions/download-artifact@v4
623+
with:
624+
name: linux-x86_64-appimage
583625
- uses: actions/download-artifact@v4
584626
with:
585-
name: linux-deb
627+
name: linux-x86_64-alternative-build
628+
path: linux-x86_64-alternative-build/
586629
- uses: actions/download-artifact@v4
587630
with:
588-
name: linux-rpm
631+
name: linux-arm64-build
632+
path: linux-arm64-build/
589633
- uses: actions/download-artifact@v4
590634
with:
591-
name: linux-appimage
635+
name: linux-arm64-deb
592636
- uses: actions/download-artifact@v4
593637
with:
594-
name: linux-alternative-portable
595-
path: linux-alternative-portable/
638+
name: linux-arm64-rpm
639+
- uses: actions/download-artifact@v4
640+
with:
641+
name: linux-arm64-alternative-build
642+
path: linux-arm64-alternative-build/
596643
- uses: actions/download-artifact@v4
597644
with:
598645
name: windows-setup
@@ -607,23 +654,30 @@ jobs:
607654
name: ipa-build
608655
- uses: actions/download-artifact@v4
609656
with:
610-
name: server-build-linux
611-
path: server-build-linux/
657+
name: server-build-linux-x86_64
658+
path: server-build-linux-x86_64/
659+
- uses: actions/download-artifact@v4
660+
with:
661+
name: server-build-linux-arm64
662+
path: server-build-linux-arm64/
612663
- uses: actions/download-artifact@v4
613664
with:
614-
name: server-build-windows
615-
path: server-build-windows/
665+
name: server-build-windows-x86_64
666+
path: server-build-windows-x86_64/
616667
- uses: actions/download-artifact@v4
617668
with:
618669
name: server-build-macos
619670
path: server-build-macos/
620671
- name: 📦 Zip artifacts
621672
run: |
622673
zip -r linwood-setonix-windows-x86_64.zip windows-build/*
623-
tar -C linux-build -czf linwood-setonix-linux-x86_64.tar.gz .
624-
tar -C linux-alternative-portable -czf linwood-setonix-linux-alternative-x86_64.tar.gz .
625-
zip -r linwood-setonix-server-windows-x86_64.zip server-build-windows/*
626-
tar -C server-build-linux -czf linwood-setonix-server-linux-x86_64.tar.gz .
674+
tar -C linux-x86_64-build -czf linwood-setonix-linux-x86_64.tar.gz .
675+
tar -C linux-arm64-build -czf linwood-setonix-linux-arm64.tar.gz .
676+
zip -r linwood-setonix-server-windows-x86_64.zip server-build-windows-x86_64/*
677+
tar -C linux-x86_64-alternative-build -czf linwood-setonix-linux-alternative-x86_64.tar.gz .
678+
tar -C linux-arm64-alternative-build -czf linwood-setonix-linux-alternative-arm64.tar.gz .
679+
tar -C server-build-linux-x86_64 -czf linwood-setonix-server-linux-x86_64.tar.gz .
680+
tar -C server-build-linux-arm64 -czf linwood-setonix-server-linux-arm64.tar.gz .
627681
zip -r linwood-setonix-server-macos.zip server-build-macos/*
628682
- name: Configure git
629683
if: ${{ github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' }}
@@ -632,6 +686,23 @@ jobs:
632686
git config --global user.email "actions@github.com"
633687
git config --global user.name "Actions"
634688
git pull --tags
689+
- name: Add checksums
690+
run: |
691+
output_file="checksums.txt"
692+
693+
# Empty the output file if it exists
694+
> "$output_file"
695+
696+
# Find and loop through all files starting with "linwood-setonix" in the current directory
697+
for file in linwood-setonix*; do
698+
# Check if the file exists (in case no matches were found)
699+
if [ -f "$file" ]; then
700+
# Append sha256sum to the output file in the format "hash filename"
701+
sha256sum "$file" >> "$output_file"
702+
fi
703+
done
704+
705+
echo "SHA256 hashes for files starting with 'linwood-setonix' saved to $output_file"
635706
- name: 🚀 Deploy stable
636707
if: ${{ github.ref == 'refs/tags/stable' || (github.event_name == 'release' && !github.event.release.prerelease) }}
637708
uses: softprops/action-gh-release@v2
@@ -647,13 +718,22 @@ jobs:
647718
linwood-setonix-linux-x86_64.deb
648719
linwood-setonix-linux-x86_64.rpm
649720
linwood-setonix-linux-x86_64.AppImage
721+
linwood-setonix-linux-arm64.tar.gz
722+
linwood-setonix-linux-alternative-arm64.tar.gz
723+
linwood-setonix-linux-arm64.deb
724+
linwood-setonix-linux-arm64.rpm
650725
linwood-setonix-macos.zip
651726
linwood-setonix-macos.dmg
652727
linwood-setonix-android.apk
728+
linwood-setonix-android-arm.apk
729+
linwood-setonix-android-arm64.apk
730+
linwood-setonix-android-x86_64.apk
653731
linwood-setonix-ios.ipa
654732
linwood-setonix-server-linux-x86_64.tar.gz
733+
linwood-setonix-server-linux-arm64.tar.gz
655734
linwood-setonix-server-windows-x86_64.zip
656735
linwood-setonix-server-macos.zip
736+
checksums.txt
657737
env:
658738
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
659739
- name: 🚀 Deploy nightly
@@ -671,6 +751,10 @@ jobs:
671751
linwood-setonix-linux-x86_64.deb
672752
linwood-setonix-linux-x86_64.rpm
673753
linwood-setonix-linux-x86_64.AppImage
754+
linwood-setonix-linux-arm64.tar.gz
755+
linwood-setonix-linux-alternative-arm64.tar.gz
756+
linwood-setonix-linux-arm64.deb
757+
linwood-setonix-linux-arm64.rpm
674758
linwood-setonix-macos.zip
675759
linwood-setonix-macos.dmg
676760
linwood-setonix-android.apk
@@ -679,8 +763,10 @@ jobs:
679763
linwood-setonix-android-x86_64.apk
680764
linwood-setonix-ios.ipa
681765
linwood-setonix-server-linux-x86_64.tar.gz
766+
linwood-setonix-server-linux-arm64.tar.gz
682767
linwood-setonix-server-windows-x86_64.zip
683768
linwood-setonix-server-macos.zip
769+
checksums.txt
684770
env:
685771
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
686772
- name: Release
@@ -696,6 +782,10 @@ jobs:
696782
linwood-setonix-linux-x86_64.deb
697783
linwood-setonix-linux-x86_64.rpm
698784
linwood-setonix-linux-x86_64.AppImage
785+
linwood-setonix-linux-arm64.tar.gz
786+
linwood-setonix-linux-alternative-arm64.tar.gz
787+
linwood-setonix-linux-arm64.deb
788+
linwood-setonix-linux-arm64.rpm
699789
linwood-setonix-macos.zip
700790
linwood-setonix-macos.dmg
701791
linwood-setonix-android.apk
@@ -704,8 +794,10 @@ jobs:
704794
linwood-setonix-android-x86_64.apk
705795
linwood-setonix-ios.ipa
706796
linwood-setonix-server-linux-x86_64.tar.gz
797+
linwood-setonix-server-linux-arm64.tar.gz
707798
linwood-setonix-server-windows-x86_64.zip
708799
linwood-setonix-server-macos.zip
800+
checksums.txt
709801
env:
710802
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
711803
deploy-to-play-store:
@@ -757,7 +849,7 @@ jobs:
757849
- name: Setup Fastlane
758850
uses: ruby/setup-ruby@v1
759851
with:
760-
ruby-version: "3.3.5"
852+
ruby-version: "3.3.6"
761853
bundler-cache: true
762854
working-directory: app/android
763855
- name: 🚀 Deploy to Play Store

SECURITY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
| Version | Supported | |
66
| ------- | --------- | ---------------------------------------------------------------------------------------------------------------- |
7+
| 0.3.0 | :warning: | [Docs](https://setonix.world/docs/v1/intro) [Release](https://github.com/LinwoodDev/Setonix/releases/tag/v0.3.0) |
78
| 0.2.0 | :warning: | [Docs](https://setonix.world/docs/v1/intro) [Release](https://github.com/LinwoodDev/Setonix/releases/tag/v0.2.0) |
89
| 0.1.1 | :x: | [Docs](https://setonix.world/docs/v1/intro) [Release](https://github.com/LinwoodDev/Setonix/releases/tag/v0.1.1) |
910

api/pubspec.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,10 +235,10 @@ packages:
235235
dependency: transitive
236236
description:
237237
name: glob
238-
sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
238+
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
239239
url: "https://pub.dev"
240240
source: hosted
241-
version: "2.1.2"
241+
version: "2.1.3"
242242
graphs:
243243
dependency: transitive
244244
description:
@@ -533,10 +533,10 @@ packages:
533533
dependency: transitive
534534
description:
535535
name: web_socket_channel
536-
sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f"
536+
sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5"
537537
url: "https://pub.dev"
538538
source: hosted
539-
version: "3.0.1"
539+
version: "3.0.2"
540540
yaml:
541541
dependency: transitive
542542
description:

0 commit comments

Comments
 (0)