@@ -36,23 +36,27 @@ jobs:
3636 choco install meson -y
3737 yarn workspace @napi-rs/image build --features with_simd
3838 target : x86_64-pc-windows-msvc
39- - host : windows-2022-xl
39+ - host : ubuntu-latest
40+ setup : |
41+ sudo apt update
42+ sudo apt install meson -y
43+ cargo install cargo-xwin
4044 build : |
41- $Env:PATH="C:\Cargo\bin;$Env:PATH"
42- $Env:LIBAVIF_CROSS_WIN32=1
45+ export XWIN_ARCH=x86
46+ export CFLAGS="-msse4.2"
47+ export CXXFLAGS="-msse4.2"
4348 yarn workspace @napi-rs/image build --features with_simd --target i686-pc-windows-msvc
44- node -e "console.log(process.arch)"
45- yarn test
4649 target : i686-pc-windows-msvc
4750 - host : ubuntu-latest
4851 target : x86_64-unknown-linux-gnu
49- architecture : x64
5052 docker : ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
51- build : |
52- set -e && \
53- apt install meson -y && \
54- yarn workspace @napi-rs/image build --features with_simd --target x86_64-unknown-linux-gnu && \
55- strip packages/*/*.node
53+ build : >-
54+ set -e &&
55+ apt-get update &&
56+ apt-get install meson -y &&
57+ unset LDFLAGS &&
58+ CXX_x86_64_unknown_linux_gnu=g++ CC_x86_64_unknown_linux_gnu=gcc yarn workspace @napi-rs/image build --features with_simd --target x86_64-unknown-linux-gnu &&
59+ llvm-strip packages/*/*.node
5660 - host : ubuntu-latest
5761 target : x86_64-unknown-linux-musl
5862 docker : ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
@@ -73,17 +77,17 @@ jobs:
7377 brew install meson
7478 yarn workspace @napi-rs/image build --features with_simd
7579 strip -x packages/*/*.node
76- - host : ubuntu-18.04
77- architecture : x64
80+ - host : ubuntu-latest
7881 target : aarch64-unknown-linux-gnu
79- setup : |
80- sudo apt-get update
81- sudo apt-get install meson g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y
82- build : |
83- yarn workspace @napi-rs/image build --features with_simd
84- aarch64-linux-gnu-strip packages/*/*.node
82+ docker : ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
83+ build : >-
84+ set -e &&
85+ export LDFLAGS="-L/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5" &&
86+ export CFLAGS="-fuse-ld=lld -mcrc -B/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot" &&
87+ export CXXFLAGS="-fuse-ld=lld -mcrc -B/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot" &&
88+ yarn workspace @napi-rs/image build --features with_simd --target aarch64-unknown-linux-gnu &&
89+ llvm-strip packages/*/*.node
8590 - host : ubuntu-18.04
86- architecture : x64
8791 target : armv7-unknown-linux-gnueabihf
8892 setup : |
8993 sudo apt-get update
@@ -92,34 +96,22 @@ jobs:
9296 yarn workspace @napi-rs/image build --features oxipng_libdeflater
9397 arm-linux-gnueabihf-strip packages/*/*.node
9498 - host : ubuntu-latest
95- architecture : x64
9699 target : aarch64-linux-android
97100 build : |
98101 sudo apt update
99102 sudo apt install meson -y
100- export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
101- export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
102- export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"
103- export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
104- export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
105103 yarn workspace @napi-rs/image build --features with_simd
106104 ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip packages/*/*.node
107105 - host : ubuntu-latest
108- architecture : x64
109106 target : armv7-linux-androideabi
110107 build : |
111108 sudo apt update
112109 sudo apt install meson -y
113- export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"
114- export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"
115- export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"
116- export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
117- export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"
118- export C_INCLUDE_PATH="${ANDROID_NDK_LATEST_HOME}/sources/android/cpufeatures";
110+ export C_INCLUDE_PATH="${ANDROID_NDK_LATEST_HOME}/sources/android/cpufeatures";
111+ export CMAKE_TOOLCHAIN_FILE_armv7_linux_androideabi="${ANDROID_NDK_LATEST_HOME}/build/cmake/android.toolchain.cmake";
119112 yarn workspace @napi-rs/image build --features oxipng_libdeflater
120113 ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip packages/*/*.node
121114 - host : ubuntu-latest
122- architecture : x64
123115 target : aarch64-unknown-linux-musl
124116 downloadTarget : aarch64-unknown-linux-musl
125117 docker : ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
@@ -148,7 +140,6 @@ jobs:
148140 if : matrix.settings.target == 'x86_64-pc-windows-msvc' || matrix.settings.target == 'x86_64-apple-darwin' || matrix.settings.target == 'i686-pc-windows-msvc'
149141 - name : Install
150142 uses : actions-rs/toolchain@v1
151- if : matrix.settings.target != 'i686-pc-windows-msvc'
152143 with :
153144 profile : minimal
154145 override : true
@@ -163,29 +154,22 @@ jobs:
163154 ~/.cargo/git/db/
164155 .cargo-cache
165156 target/
166- key : ${{ matrix.settings.target }}-cargo-registry
167- - name : Cache NPM dependencies
168- uses : actions/cache@v3
157+ key : ${{ matrix.settings.target }}-cargo-cache
158+ - uses : goto-bus-stop/setup-zig@v2
159+ if : ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
169160 with :
170- path : .yarn/cache
171- key : npm-cache-${{ matrix.settings.target }}-node@16
161+ version : 0.10.0
162+ - name : Install LLVM and Clang
163+ uses : KyleMayes/install-llvm-action@v1
164+ if : ${{ matrix.settings.target == 'i686-pc-windows-msvc' }}
165+ with :
166+ version : ' 15'
172167 - name : Setup toolchain
173168 run : ${{ matrix.settings.setup }}
174169 if : ${{ matrix.settings.setup }}
175170 shell : bash
176- - name : Setup node x86 install settings
177- if : matrix.settings.target == 'i686-pc-windows-msvc'
178- run : yarn config set supportedArchitectures.cpu --json '["x86", "x64"]'
179- shell : bash
180171 - name : Install dependencies
181172 run : yarn install --immutable --mode=skip-build
182- - name : Setup node x86
183- uses : actions/setup-node@v3
184- if : matrix.settings.target == 'i686-pc-windows-msvc'
185- with :
186- node-version : 16
187- check-latest : true
188- architecture : x86
189173 - name : Build in docker
190174 uses : addnab/docker-run-action@v3
191175 if : ${{ matrix.settings.docker }}
@@ -195,14 +179,10 @@ jobs:
195179 run : ${{ matrix.settings.build }}
196180 - name : Build
197181 run : ${{ matrix.settings.build }}
198- if : ${{ !matrix.settings.docker && matrix.settings.target != 'i686-pc-windows-msvc' }}
182+ if : ${{ !matrix.settings.docker }}
199183 shell : bash
200- - name : Build
201- run : ${{ matrix.settings.build }}
202- if : matrix.settings.target == 'i686-pc-windows-msvc'
203- shell : powershell
204184 - name : Upload artifact
205- uses : actions/upload-artifact@v2
185+ uses : actions/upload-artifact@v3
206186 with :
207187 name : bindings-${{ matrix.settings.target }}
208188 path : packages/*/*.node
@@ -214,7 +194,7 @@ jobs:
214194 - uses : actions/checkout@v3
215195 - name : Build
216196 id : build
217- uses : vmactions/freebsd-vm@v0.2.3
197+ uses : vmactions/freebsd-vm@v0
218198 env :
219199 DEBUG : napi:*
220200 RUSTUP_HOME : /usr/local/rustup
@@ -225,7 +205,7 @@ jobs:
225205 usesh : true
226206 mem : 3000
227207 prepare : |
228- pkg install -y curl cmake nasm node16 python2 perl5
208+ pkg install -y curl cmake nasm node perl5
229209 curl -qL https://www.npmjs.com/install.sh | sh
230210 npm install --location=global --ignore-scripts yarn
231211 curl https://sh.rustup.rs -sSf --output rustup.sh
@@ -252,7 +232,7 @@ jobs:
252232 rm -rf node_modules
253233 rm -rf target
254234 - name : Upload artifact
255- uses : actions/upload-artifact@v2
235+ uses : actions/upload-artifact@v3
256236 with :
257237 name : bindings-freebsd
258238 path : packages/*/*.node
@@ -482,11 +462,6 @@ jobs:
482462 node-version : 16
483463 check-latest : true
484464 cache : yarn
485- - name : Cache NPM dependencies
486- uses : actions/cache@v3
487- with :
488- path : .yarn/cache
489- key : npm-cache-ubuntu-latest-publish
490465 - name : Install dependencies
491466 run : yarn install --immutable --mode=skip-build
492467 - name : Download all artifacts
0 commit comments