@@ -11,14 +11,18 @@ jobs:
11
11
fail-fast : false
12
12
matrix :
13
13
os :
14
- - ubuntu-20 .04
14
+ - ubuntu-22 .04
15
15
- macOS-latest
16
16
- windows-latest
17
17
steps :
18
18
- uses : actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
19
19
- uses : dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d # 1.6.0
20
+ - uses : mlugg/setup-zig@v1
21
+ if : (matrix.os == 'ubuntu-22.04')
22
+ with :
23
+ version : 0.13.0
20
24
- name : Install GTK
21
- if : (matrix.os == 'ubuntu-20 .04')
25
+ if : (matrix.os == 'ubuntu-22 .04')
22
26
run : sudo apt-get update && sudo apt-get install libgtk-3-dev
23
27
- name : Precompile
24
28
if : (matrix.os == 'macOS-latest') || (matrix.os == 'windows-latest')
28
32
GITHUB_TOKEN : ${{ secrets.RELEASE_GITHUB_TOKEN }}
29
33
PRIVATE_KEY : ${{ secrets.RELEASE_PRIVATE_KEY }}
30
34
- name : Precompile (with Android)
31
- if : (matrix.os == 'ubuntu-20.04')
32
- run : dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=superlistapp/super_native_extensions --android-sdk-location=/usr/local/lib/android/sdk --android-ndk-version=26.3.11579264 --android-min-sdk-version=23
35
+ if : (matrix.os == 'ubuntu-22.04')
36
+ run : |
37
+ export ZIG_SYSTEM_LIB_DIR="/usr/lib/x86_64-linux-gnu"
38
+ export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C link-args=-L$ZIG_SYSTEM_LIB_DIR"
39
+ dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=superlistapp/super_native_extensions --android-sdk-location=/usr/local/lib/android/sdk --android-ndk-version=26.3.11579264 --android-min-sdk-version=23 --glibc-version=2.31
33
40
working-directory : super_native_extensions/cargokit/build_tool
34
41
env :
35
42
GITHUB_TOKEN : ${{ secrets.RELEASE_GITHUB_TOKEN }}
36
43
PRIVATE_KEY : ${{ secrets.RELEASE_PRIVATE_KEY }}
44
+
45
+ PrecompileCross :
46
+ runs-on : ubuntu-22.04
47
+ name : Precompile (${{ matrix.distro }} ${{ matrix.arch }})
48
+
49
+ strategy :
50
+ fail-fast : false
51
+ matrix :
52
+ include :
53
+ - arch : aarch64
54
+ distro : ubuntu22.04
55
+ target : aarch64-unknown-linux-gnu
56
+ dart_arch : arm64
57
+ - arch : riscv64
58
+ distro : ubuntu22.04
59
+ target : riscv64gc-unknown-linux-gnu
60
+ dart_arch : riscv64
61
+
62
+ steps :
63
+ - uses : actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
64
+
65
+ - name : Precompile
66
+ uses : uraimo/run-on-arch-action@v3
67
+ with :
68
+ arch : ${{ matrix.arch }}
69
+ distro : ${{ matrix.distro }}
70
+ githubToken : ${{ github.token }}
71
+ shell : /bin/bash
72
+
73
+ install : |
74
+ case "${{ matrix.distro }}" in
75
+ ubuntu*)
76
+ apt-get update -q -y
77
+ apt-get install -q -y libgtk-3-dev git curl unzip gcc
78
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
79
+ curl -o dartsdk-linux-${{ matrix.dart_arch }}-release.zip https://storage.googleapis.com/dart-archive/channels/stable/release/latest/sdk/dartsdk-linux-${{ matrix.dart_arch }}-release.zip
80
+ unzip dartsdk-linux-${{ matrix.dart_arch }}-release.zip
81
+ mv dart-sdk /usr/lib/dart
82
+ curl -o zig.tar.xz https://ziglang.org/download/0.14.0/zig-linux-x86_64-0.14.0.tar.xz
83
+ tar -xf zig.tar.xz
84
+ mv zig-linux-x86_64-0.14.0 /usr/lib/zig
85
+ ;;
86
+ esac
87
+
88
+ run : |
89
+ export GITHUB_TOKEN=${{ secrets.RELEASE_GITHUB_TOKEN }}
90
+ export PRIVATE_KEY=${{ secrets.RELEASE_PRIVATE_KEY }}
91
+ export PATH="$PATH:/usr/lib/dart/bin:/usr/lib/zig"
92
+
93
+ ARCH=$(uname -m)
94
+
95
+ case "$ARCH" in
96
+ "aarch64")
97
+ export ZIG_SYSTEM_LIB_DIR="/usr/lib/aarch64-linux-gnu"
98
+ export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C link-args=-L$ZIG_SYSTEM_LIB_DIR"
99
+ ;;
100
+ "riscv64")
101
+ export ZIG_SYSTEM_LIB_DIR="/usr/lib/riscv64-linux-gnu"
102
+ export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C link-args=-L$ZIG_SYSTEM_LIB_DIR"
103
+ ;;
104
+ *)
105
+ echo "Unsupported architecture: $ARCH"
106
+ exit 1
107
+ ;;
108
+ esac
109
+
110
+ cd super_native_extensions/cargokit/build_tool && dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=superlistapp/super_native_extensions --target ${{ matrix.target }} --glibc-version=2.31
0 commit comments