Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,18 @@ jobs:
v8_enable_pointer_compression: true
cargo: cargo

- os: ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }}
target: x86_64-unknown-linux-musl
variant: debug
v8_enable_pointer_compression: false
cargo: cargo

- os: ${{ github.repository == 'denoland/rusty_v8' && 'ubuntu-22.04-xl' || 'ubuntu-22.04' }}
target: x86_64-unknown-linux-musl
variant: release
v8_enable_pointer_compression: false
cargo: cargo

- os: ${{ github.repository == 'denoland/rusty_v8' && 'windows-2022-xxl' || 'windows-2022' }}
target: x86_64-pc-windows-msvc
variant: release # Note: we do not support windows debug builds.
Expand Down Expand Up @@ -183,6 +195,8 @@ jobs:
"aarch64-apple-darwin" = "aarch64-apple-darwin"
"x86_64-unknown-linux-gnu" = "x86_64-unknown-linux-musl"
"aarch64-unknown-linux-gnu" = "aarch64-unknown-linux-musl"
"x86_64-unknown-linux-musl" = "x86_64-unknown-linux-musl"
"aarch64-unknown-linux-musl" = "aarch64-unknown-linux-musl"
"x86_64-pc-windows-msvc" = "x86_64-pc-windows-msvc"
}['${{ matrix.config.target }}']
$basename = "sccache-$version-$platform"
Expand Down Expand Up @@ -217,7 +231,7 @@ jobs:
- name: Test (ASAN)
env:
SCCACHE_IDLE_TIMEOUT: 0
if: matrix.config.variant == 'asan'
if: matrix.config.variant == 'asan' && matrix.config.target != 'x86_64-unknown-linux-musl'
# https://github.com/rust-lang/rust/issues/87215
run: |
rustup component add rust-src --toolchain nightly-${{ matrix.config.target }}
Expand All @@ -226,10 +240,19 @@ jobs:
tar -C tools/clang/dsymutil/ -xvzf dsymutil-llvmorg-17-init-19076-g5533fc10-1.tgz
V8_FROM_SOURCE=true RUSTFLAGS="-C opt-level=1 -Zsanitizer=address" cargo +nightly -Z build-std nextest run --lib --bins --tests -v --cargo-verbose --cargo-verbose --target ${{ matrix.config.target }}

- name: Test (Musl)
env:
SCCACHE_IDLE_TIMEOUT: 0
if: matrix.config.target == 'x86_64-unknown-linux-musl'
run: |
docker run -v "$PWD":/usr/src/rusty_v8 -w /usr/src/rusty_v8 rust:alpine3.21 ./musl-build.sh ${{ env.CARGO_VARIANT_FLAG }}
docker cp $(docker ps -lq):/usr/src/rusty_v8/target/${{ matrix.config.variant }}/gn_out/obj/librusty_v8.a target/librusty_v8_${{ matrix.config.variant }}_x86_64-unknown-linux-musl.a
sudo chown -R $(id -u):$(id -g) /home/runner/work/rusty_v8/rusty_v8/target/

- name: Test
env:
SCCACHE_IDLE_TIMEOUT: 0
if: matrix.config.variant == 'debug' || matrix.config.variant == 'release'
if: (matrix.config.variant == 'debug' || matrix.config.variant == 'release') && matrix.config.target != 'x86_64-unknown-linux-musl'
run: ${{ matrix.config.cargo }} nextest run -v --cargo-verbose --cargo-verbose --all-targets --locked --target ${{ matrix.config.target }} ${{ env.CARGO_VARIANT_FLAG }} ${{ env.CARGO_FEATURE_FLAGS }}

- name: Clippy
Expand Down
29 changes: 29 additions & 0 deletions musl-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh

apk add git \
gcc \
ninja \
python3 \
g++ \
pkgconfig \
glib-dev \
binutils-gold
ln -s /usr/bin/python3 /usr/bin/python

export V8_FROM_SOURCE="yes"
export GN_ARGS="use_custom_libcxx=false use_lld=false v8_enable_backtrace=false v8_enable_debugging_features=false"
GN="$(pwd)/gn/out/gn"
export GN

# Build GN
if [ ! -d "./gn" ]; then
git clone https://gn.googlesource.com/gn
(
cd gn || exit
python3 build/gen.py
ninja -C out
)
fi

# Build rusty_v8 and pass through the arguments
cargo build -vv $@ --target=x86_64-unknown-linux-musl
Loading