From 57406a83630c2a2d02285777fe02fcbc7afa8ec9 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:30:56 +0200 Subject: [PATCH 01/23] Try to make install generic --- .github/workflows/build-and-test.yml | 43 ++++++++++++++++------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 9f2045560..a94ee919d 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -9,27 +9,34 @@ on: jobs: build-and-test: - runs-on: ubuntu-latest + matrix: + metadata: [ + { + os: ubuntu-latest, + wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz, + setup: | + sudo apt-get update + sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt + npm i -g wasm-opt pnpm concurrently + sudo rm /usr/bin/clang + sudo rm /usr/bin/clang++ + sudo ln -s /usr/bin/clang-15 /usr/bin/clang + sudo ln -s /usr/bin/clang++-15 /usr/bin/clang++ + sudo ln -s /usr/bin/llvm-ar-15 /usr/bin/llvm-ar + sudo ln -s /usr/bin/llvm-nm-15 /usr/bin/llvm-nm + sudo ln -s /usr/bin/llvm-ranlib-15 /usr/bin/llvm-ranlib + sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump + } + ] + runs-on: ${{ matrix.metadata.os }} steps: - name: Check out uses: actions/checkout@v3 with: submodules: "recursive" - - name: OS Setup (Ubuntu) - run: | - sudo apt-get update - sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt - npm i -g wasm-opt pnpm concurrently - sudo rm /usr/bin/clang - sudo rm /usr/bin/clang++ - sudo ln -s /usr/bin/clang-15 /usr/bin/clang - sudo ln -s /usr/bin/clang++-15 /usr/bin/clang++ - sudo ln -s /usr/bin/llvm-ar-15 /usr/bin/llvm-ar - sudo ln -s /usr/bin/llvm-nm-15 /usr/bin/llvm-nm - sudo ln -s /usr/bin/llvm-ranlib-15 /usr/bin/llvm-ranlib - sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump - + - name: OS Setup + run: ${{ matrix.metadata.setup }} - name: Tool Versions run: | echo clang @@ -78,7 +85,7 @@ jobs: uses: dsaltares/fetch-gh-release-asset@1.1.2 with: repo: wasix-org/rust - file: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz + file: ${{ matrix.metadata.wasix-toolchain-release-asset }} target: wasix-rust-toolchain/toolchain.tar.gz - name: Install wasix toolchain @@ -86,8 +93,8 @@ jobs: cd wasix-rust-toolchain tar xzf toolchain.tar.gz chmod +x bin/* - chmod +x lib/rustlib/x86_64-unknown-linux-gnu/bin/* - chmod +x lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/* + chmod +x lib/rustlib/*/bin/* + chmod +x lib/rustlib/*/bin/gcc-ld/* rustup toolchain link wasix . - name: Build native From 5bb1e0b4c5ea28214c3e8d27302228a98d78142b Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:34:11 +0200 Subject: [PATCH 02/23] Fix metadata --- .github/workflows/build-and-test.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index a94ee919d..5aed81331 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -13,8 +13,19 @@ jobs: metadata: [ { os: ubuntu-latest, - wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz, - setup: | + wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz + } + ] + runs-on: ${{ matrix.metadata.os }} + steps: + - name: Check out + uses: actions/checkout@v3 + with: + submodules: "recursive" + + - name: OS Setup (Ubuntu) + if: ${{ matrix.metadata.os == "ubuntu-latest" }} + run: | sudo apt-get update sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt npm i -g wasm-opt pnpm concurrently @@ -26,17 +37,6 @@ jobs: sudo ln -s /usr/bin/llvm-nm-15 /usr/bin/llvm-nm sudo ln -s /usr/bin/llvm-ranlib-15 /usr/bin/llvm-ranlib sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump - } - ] - runs-on: ${{ matrix.metadata.os }} - steps: - - name: Check out - uses: actions/checkout@v3 - with: - submodules: "recursive" - - - name: OS Setup - run: ${{ matrix.metadata.setup }} - name: Tool Versions run: | echo clang From c94d51f3b1f330ad30e7fcd993eb48643809279e Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:36:16 +0200 Subject: [PATCH 03/23] More fixes --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 5aed81331..badcf7c10 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -24,7 +24,7 @@ jobs: submodules: "recursive" - name: OS Setup (Ubuntu) - if: ${{ matrix.metadata.os == "ubuntu-latest" }} + if: matrix.metadata.os == "ubuntu-latest" run: | sudo apt-get update sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt From da52ebbb3e436c0eaff59996c5732ff34a3a9307 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:37:22 +0200 Subject: [PATCH 04/23] More fixes --- .github/workflows/build-and-test.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index badcf7c10..58693e219 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -9,13 +9,15 @@ on: jobs: build-and-test: - matrix: - metadata: [ - { - os: ubuntu-latest, - wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz - } - ] + strategy: + fail-fast: false + matrix: + metadata: [ + { + os: ubuntu-latest, + wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz + } + ] runs-on: ${{ matrix.metadata.os }} steps: - name: Check out From 05d695cc9bbbd374ccf9fa0826c7d6f732303576 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:39:17 +0200 Subject: [PATCH 05/23] More fixes --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 58693e219..0bb1c6775 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -26,7 +26,7 @@ jobs: submodules: "recursive" - name: OS Setup (Ubuntu) - if: matrix.metadata.os == "ubuntu-latest" + if: ${{ matrix.metadata.os == "ubuntu-latest" }} run: | sudo apt-get update sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt From 265d1212013da3633a3c39ddbea50d2afb43fe17 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:40:26 +0200 Subject: [PATCH 06/23] try single quotes --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 0bb1c6775..c7ec88ed5 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -26,7 +26,7 @@ jobs: submodules: "recursive" - name: OS Setup (Ubuntu) - if: ${{ matrix.metadata.os == "ubuntu-latest" }} + if: ${{ matrix.metadata.os == 'ubuntu-latest' }} run: | sudo apt-get update sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt From 3a62effb9c08229747d98ec94b7ce5a0fcde0891 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 17:54:37 +0200 Subject: [PATCH 07/23] Parallelize builds --- .github/workflows/build-and-test.yml | 44 ++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index c7ec88ed5..d6977ce5f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -15,9 +15,20 @@ jobs: metadata: [ { os: ubuntu-latest, + bin-path: target/release-compact/winterjs, + artifact-name: winterjs-linux, + target: native, + wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz + }, + { + os: ubuntu-latest, + bin-path: target/wasm32-wasmer-wasi/release/winterjs.wasm, + artifact-name: winterjs-wasm, + target: wasm, wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz } ] + name: Build and Test in ${{ matrix.metadata.os }} (${{ matrix.metadata.target }}) runs-on: ${{ matrix.metadata.os }} steps: - name: Check out @@ -100,36 +111,43 @@ jobs: rustup toolchain link wasix . - name: Build native + if: ${{ matrix.metadata.target == 'native' }} run: cargo build --profile release-compact - - name: Archive build native output - uses: actions/upload-artifact@v3 - with: - name: winterjs-linux - path: target/release-compact/winterjs - - name: Build wasm + if: ${{ matrix.metadata.target == 'wasm' }} run: | export WASI_SYSROOT=$(pwd)/sysroot/wasix-libc/sysroot32 bash build.sh + - name: Archive build + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.metadata.artifact-name }} + path: ${{ matrix.metadata.bin-path }} + - name: build test suite JS app run: | cd test-suite/js-test-app pnpm i pnpm run build - - name: Run API test suite + - name: Run API test suite (wasm) # note: we're counting on wasmer compiling and running WinterJS faster # that cargo builds the test-suite app. This may not be the case forever. + if: ${{ matrix.metadata.target == 'wasm' }} run: | conc --kill-others --success "command-1" \ - "wasmer run target/wasm32-wasmer-wasi/release/winterjs.wasm --net --mapdir /app:./test-suite/js-test-app/dist -- serve /app/bundle.js" \ + "wasmer run . --net --mapdir /app:./test-suite/js-test-app/dist -- serve /app/bundle.js" \ "sleep 10 && cd test-suite && cargo run" echo All tests are passing! 🎉 - - name: Archive build wasm output - uses: actions/upload-artifact@v3 - with: - name: winterjs-wasm - path: target/wasm32-wasmer-wasi/release/winterjs.wasm + - name: Run API test suite (native) + # note: we're counting on wasmer compiling and running WinterJS faster + # that cargo builds the test-suite app. This may not be the case forever. + if: ${{ matrix.metadata.target == 'native' }} + run: | + conc --kill-others --success "command-1" \ + "./target/release-compact/winterjs serve ./test-suite/js-test-app/dist/bundle.js" \ + "sleep 10 && cd test-suite && cargo run" + echo All tests are passing! 🎉 From 0d387dc55d7da6824b9a48affab76cb6e92b72db Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 18:03:52 +0200 Subject: [PATCH 08/23] Make wasix-related stuff only in wasm targets --- .github/workflows/build-and-test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index d6977ce5f..08c8c772e 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -80,9 +80,11 @@ jobs: components: "clippy,rustfmt" - name: Setup Wasmer + if: ${{ matrix.metadata.target == 'wasm' }} uses: wasmerio/setup-wasmer@v3.1 - name: Download wasix-libc + if: ${{ matrix.metadata.target == 'wasm' }} uses: dsaltares/fetch-gh-release-asset@1.1.2 with: repo: wasix-org/rust @@ -90,11 +92,13 @@ jobs: target: sysroot/wasix-libc.tar.gz - name: Unpack wasix-libc + if: ${{ matrix.metadata.target == 'wasm' }} run: | cd sysroot tar xzf wasix-libc.tar.gz - name: Download wasix toolchain + if: ${{ matrix.metadata.target == 'wasm' }} uses: dsaltares/fetch-gh-release-asset@1.1.2 with: repo: wasix-org/rust @@ -102,6 +106,7 @@ jobs: target: wasix-rust-toolchain/toolchain.tar.gz - name: Install wasix toolchain + if: ${{ matrix.metadata.target == 'wasm' }} run: | cd wasix-rust-toolchain tar xzf toolchain.tar.gz From 2df1dbea25324ba0574547714b2acde4cb2e0cb8 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 18:09:12 +0200 Subject: [PATCH 09/23] Added macos into the mix --- .github/workflows/build-and-test.yml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 08c8c772e..bed553a7b 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -14,21 +14,37 @@ jobs: matrix: metadata: [ { + name: "Ubuntu (native)", os: ubuntu-latest, bin-path: target/release-compact/winterjs, artifact-name: winterjs-linux, target: native, - wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz }, { + name: "macOS (native)", + os: macos-15-xlarge, + bin-path: target/release-compact/winterjs, + artifact-name: winterjs-macos, + target: native, + }, + { + name: "Ubuntu (wasix)", os: ubuntu-latest, bin-path: target/wasm32-wasmer-wasi/release/winterjs.wasm, artifact-name: winterjs-wasm, target: wasm, wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz - } + }, + # { + # name: "macOS (wasix)", + # os: macos-15-xlarge, + # bin-path: target/release-compact/winterjs, + # artifact-name: winterjs-macos-wasm, + # target: wasm, + # wasix-toolchain-release-asset: rust-toolchain-aarch64-apple-darwin.tar.gz + # } ] - name: Build and Test in ${{ matrix.metadata.os }} (${{ matrix.metadata.target }}) + name: Build and Test - ${{ matrix.metadata.name }} runs-on: ${{ matrix.metadata.os }} steps: - name: Check out From 0fba16caf8a5e590fdca6d8c149309df29f8738a Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 18:37:33 +0200 Subject: [PATCH 10/23] Update macos image --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index bed553a7b..21757fefb 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -22,7 +22,7 @@ jobs: }, { name: "macOS (native)", - os: macos-15-xlarge, + os: macos-latest, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos, target: native, From 5799479684c6b29680e4460f7e34fd9f3664b526 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 18:38:59 +0200 Subject: [PATCH 11/23] Fixed setup --- .github/workflows/build-and-test.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 21757fefb..87b6a70a3 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -66,6 +66,13 @@ jobs: sudo ln -s /usr/bin/llvm-nm-15 /usr/bin/llvm-nm sudo ln -s /usr/bin/llvm-ranlib-15 /usr/bin/llvm-ranlib sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump + + - name: OS Setup (macOS) + if: ${{ matrix.metadata.os == 'macos-latest' }} + run: | + brew install wabt + npm i -g wasm-opt pnpm concurrently + - name: Tool Versions run: | echo clang From 4f33719832f4aa0c4a82d134644b8162663739b8 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Wed, 3 Jul 2024 18:41:30 +0200 Subject: [PATCH 12/23] Added llvm 15 installation --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 87b6a70a3..f6b5e4d1f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -70,7 +70,7 @@ jobs: - name: OS Setup (macOS) if: ${{ matrix.metadata.os == 'macos-latest' }} run: | - brew install wabt + brew install wabt llvm@15 npm i -g wasm-opt pnpm concurrently - name: Tool Versions From a39fcfa2ddf9bc8075917690803bc3590aa0b5df Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 09:54:23 +0200 Subject: [PATCH 13/23] Trying to debug bin --- .github/workflows/build-and-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f6b5e4d1f..d3634b0c1 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -71,6 +71,9 @@ jobs: if: ${{ matrix.metadata.os == 'macos-latest' }} run: | brew install wabt llvm@15 + ls -al /opt/homebrew/opt/llvm@15/bin/ + echo $PATH + echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently - name: Tool Versions From a690743087e3df21c860b6d4a674bb45f959e921 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 10:26:05 +0200 Subject: [PATCH 14/23] Various fixes --- .github/workflows/build-and-test.yml | 71 +++++++++++++++------------- .github/workflows/release.yml | 2 +- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index d3634b0c1..21e5a99c7 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -14,33 +14,40 @@ jobs: matrix: metadata: [ { - name: "Ubuntu (native)", + name: "Ubuntu (x86 native)", os: ubuntu-latest, bin-path: target/release-compact/winterjs, - artifact-name: winterjs-linux, + artifact-name: winterjs-linux-x86, target: native, }, { - name: "macOS (native)", + name: "macOS (arm native)", os: macos-latest, bin-path: target/release-compact/winterjs, - artifact-name: winterjs-macos, + artifact-name: winterjs-macos-arm, + target: native, + }, + { + name: "macOS (x86 native)", + os: macos-13, + bin-path: target/release-compact/winterjs, + artifact-name: winterjs-macos-x86, target: native, }, { name: "Ubuntu (wasix)", os: ubuntu-latest, bin-path: target/wasm32-wasmer-wasi/release/winterjs.wasm, - artifact-name: winterjs-wasm, - target: wasm, + artifact-name: winterjs-wasix, + target: wasix, wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz }, # { # name: "macOS (wasix)", # os: macos-15-xlarge, # bin-path: target/release-compact/winterjs, - # artifact-name: winterjs-macos-wasm, - # target: wasm, + # artifact-name: winterjs-macos-wasix, + # target: wasix, # wasix-toolchain-release-asset: rust-toolchain-aarch64-apple-darwin.tar.gz # } ] @@ -55,26 +62,24 @@ jobs: - name: OS Setup (Ubuntu) if: ${{ matrix.metadata.os == 'ubuntu-latest' }} run: | - sudo apt-get update - sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt - npm i -g wasm-opt pnpm concurrently - sudo rm /usr/bin/clang - sudo rm /usr/bin/clang++ - sudo ln -s /usr/bin/clang-15 /usr/bin/clang - sudo ln -s /usr/bin/clang++-15 /usr/bin/clang++ - sudo ln -s /usr/bin/llvm-ar-15 /usr/bin/llvm-ar - sudo ln -s /usr/bin/llvm-nm-15 /usr/bin/llvm-nm - sudo ln -s /usr/bin/llvm-ranlib-15 /usr/bin/llvm-ranlib - sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump + sudo apt-get update + sudo apt-get install -y build-essential python3.11 python3-distutils llvm-15 libclang-dev clang-15 wabt + npm i -g wasm-opt pnpm concurrently + sudo rm /usr/bin/clang + sudo rm /usr/bin/clang++ + sudo ln -s /usr/bin/clang-15 /usr/bin/clang + sudo ln -s /usr/bin/clang++-15 /usr/bin/clang++ + sudo ln -s /usr/bin/llvm-ar-15 /usr/bin/llvm-ar + sudo ln -s /usr/bin/llvm-nm-15 /usr/bin/llvm-nm + sudo ln -s /usr/bin/llvm-ranlib-15 /usr/bin/llvm-ranlib + sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump - name: OS Setup (macOS) if: ${{ matrix.metadata.os == 'macos-latest' }} run: | - brew install wabt llvm@15 - ls -al /opt/homebrew/opt/llvm@15/bin/ - echo $PATH - echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV - npm i -g wasm-opt pnpm concurrently + brew install wabt llvm@15 + echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV + npm i -g wasm-opt pnpm concurrently - name: Tool Versions run: | @@ -106,11 +111,11 @@ jobs: components: "clippy,rustfmt" - name: Setup Wasmer - if: ${{ matrix.metadata.target == 'wasm' }} + if: ${{ matrix.metadata.target == 'wasix' }} uses: wasmerio/setup-wasmer@v3.1 - name: Download wasix-libc - if: ${{ matrix.metadata.target == 'wasm' }} + if: ${{ matrix.metadata.target == 'wasix' }} uses: dsaltares/fetch-gh-release-asset@1.1.2 with: repo: wasix-org/rust @@ -118,13 +123,13 @@ jobs: target: sysroot/wasix-libc.tar.gz - name: Unpack wasix-libc - if: ${{ matrix.metadata.target == 'wasm' }} + if: ${{ matrix.metadata.target == 'wasix' }} run: | cd sysroot tar xzf wasix-libc.tar.gz - name: Download wasix toolchain - if: ${{ matrix.metadata.target == 'wasm' }} + if: ${{ matrix.metadata.target == 'wasix' }} uses: dsaltares/fetch-gh-release-asset@1.1.2 with: repo: wasix-org/rust @@ -132,7 +137,7 @@ jobs: target: wasix-rust-toolchain/toolchain.tar.gz - name: Install wasix toolchain - if: ${{ matrix.metadata.target == 'wasm' }} + if: ${{ matrix.metadata.target == 'wasix' }} run: | cd wasix-rust-toolchain tar xzf toolchain.tar.gz @@ -145,8 +150,8 @@ jobs: if: ${{ matrix.metadata.target == 'native' }} run: cargo build --profile release-compact - - name: Build wasm - if: ${{ matrix.metadata.target == 'wasm' }} + - name: Build wasix + if: ${{ matrix.metadata.target == 'wasix' }} run: | export WASI_SYSROOT=$(pwd)/sysroot/wasix-libc/sysroot32 bash build.sh @@ -163,10 +168,10 @@ jobs: pnpm i pnpm run build - - name: Run API test suite (wasm) + - name: Run API test suite (wasix) # note: we're counting on wasmer compiling and running WinterJS faster # that cargo builds the test-suite app. This may not be the case forever. - if: ${{ matrix.metadata.target == 'wasm' }} + if: ${{ matrix.metadata.target == 'wasix' }} run: | conc --kill-others --success "command-1" \ "wasmer run . --net --mapdir /app:./test-suite/js-test-app/dist -- serve /app/bundle.js" \ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b65dbee25..213250d23 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -43,7 +43,7 @@ jobs: fi mkdir -p target/wasm32-wasmer-wasi/release - mv build-artifacts/winterjs-wasm/winterjs.wasm target/wasm32-wasmer-wasi/release/winterjs.wasm + mv build-artifacts/winterjs-wasix/winterjs.wasm target/wasm32-wasmer-wasi/release/winterjs.wasm wasmer publish --registry="wasmer.io" --token=${{ secrets.WAPM_PROD_TOKEN }} --non-interactive From 9da9c12dcbf363021e31479a4a54ceb00a0e658b Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 10:58:30 +0200 Subject: [PATCH 15/23] Fix macos build --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 21e5a99c7..6ab1247f8 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -75,7 +75,7 @@ jobs: sudo ln -s /usr/bin/llvm-objdump-15 /usr/bin/llvm-objdump - name: OS Setup (macOS) - if: ${{ matrix.metadata.os == 'macos-latest' }} + if: ${{ startsWith(matrix.metadata.os, 'macos-') }} run: | brew install wabt llvm@15 echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV From 284ff928ce61e16c086721782ce40f2f70372854 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 11:50:38 +0200 Subject: [PATCH 16/23] Trying to get things fixed for old macs --- .github/workflows/build-and-test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 6ab1247f8..09ca0540a 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -78,6 +78,10 @@ jobs: if: ${{ startsWith(matrix.metadata.os, 'macos-') }} run: | brew install wabt llvm@15 + ls -al /usr/local/ + ls -al /usr/local/Cellar + ls -al /usr/local/Cellar/llvm@16 + echo PATH="/usr/local/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently From e8879d26517a141cfdc741cbbfd4a34bf0c1fbae Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 12:53:47 +0200 Subject: [PATCH 17/23] Trying to fix --- .github/workflows/build-and-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 09ca0540a..f77e7a892 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -80,7 +80,8 @@ jobs: brew install wabt llvm@15 ls -al /usr/local/ ls -al /usr/local/Cellar - ls -al /usr/local/Cellar/llvm@16 + ls -al /usr/local/Cellar/llvm@15 + ls -al /usr/local/opt/ echo PATH="/usr/local/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently From 21cda6e79469bb7d31ec4a2958989e04f6829865 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 14:01:28 +0200 Subject: [PATCH 18/23] Debugging further --- .github/workflows/build-and-test.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f77e7a892..aea0225dd 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -78,12 +78,9 @@ jobs: if: ${{ startsWith(matrix.metadata.os, 'macos-') }} run: | brew install wabt llvm@15 - ls -al /usr/local/ - ls -al /usr/local/Cellar - ls -al /usr/local/Cellar/llvm@15 - ls -al /usr/local/opt/ + ls -al /usr/local/opt/llvm@15/bin echo PATH="/usr/local/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV - echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV + # echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently - name: Tool Versions From 837100af748fdbce04566bff3e7e19dd3b1ec838 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 14:28:36 +0200 Subject: [PATCH 19/23] Proper fix for multi homebrew mac --- .github/workflows/build-and-test.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index aea0225dd..b67b6517d 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -78,9 +78,7 @@ jobs: if: ${{ startsWith(matrix.metadata.os, 'macos-') }} run: | brew install wabt llvm@15 - ls -al /usr/local/opt/llvm@15/bin - echo PATH="/usr/local/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV - # echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV + echo PATH="$HOMEBREW_PREFIX/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently - name: Tool Versions From 8381028b770d9b470289272b05a2199b3832ec82 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 14:29:42 +0200 Subject: [PATCH 20/23] Try to build wasix on macos as well --- .github/workflows/build-and-test.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index b67b6517d..dff71fa63 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -42,14 +42,14 @@ jobs: target: wasix, wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz }, - # { - # name: "macOS (wasix)", - # os: macos-15-xlarge, - # bin-path: target/release-compact/winterjs, - # artifact-name: winterjs-macos-wasix, - # target: wasix, - # wasix-toolchain-release-asset: rust-toolchain-aarch64-apple-darwin.tar.gz - # } + { + name: "macOS (wasix)", + os: macos-latest, + bin-path: target/release-compact/winterjs, + artifact-name: winterjs-macos-wasix, + target: wasix, + wasix-toolchain-release-asset: rust-toolchain-aarch64-apple-darwin.tar.gz + } ] name: Build and Test - ${{ matrix.metadata.name }} runs-on: ${{ matrix.metadata.os }} From 32554668df897d2ddb82fb06d3da7201157495f5 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 14:35:09 +0200 Subject: [PATCH 21/23] Trying to fix --- .github/workflows/build-and-test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index dff71fa63..40d2cd749 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -23,6 +23,7 @@ jobs: { name: "macOS (arm native)", os: macos-latest, + homebrew-prefix: /opt/homebrew, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos-arm, target: native, @@ -30,6 +31,7 @@ jobs: { name: "macOS (x86 native)", os: macos-13, + homebrew-prefix: /usr/local, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos-x86, target: native, @@ -45,6 +47,7 @@ jobs: { name: "macOS (wasix)", os: macos-latest, + homebrew-prefix: /opt/homebrew, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos-wasix, target: wasix, @@ -78,7 +81,7 @@ jobs: if: ${{ startsWith(matrix.metadata.os, 'macos-') }} run: | brew install wabt llvm@15 - echo PATH="$HOMEBREW_PREFIX/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV + echo PATH="${{ matrix.metadata.homebrew-prefx }}/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently - name: Tool Versions From 3fbc01352bd18f53e989fc4b6116c2d2d6ac43ce Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 14:39:19 +0200 Subject: [PATCH 22/23] Trying to make things more common --- .github/workflows/build-and-test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 40d2cd749..47387d0ca 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -23,7 +23,6 @@ jobs: { name: "macOS (arm native)", os: macos-latest, - homebrew-prefix: /opt/homebrew, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos-arm, target: native, @@ -31,7 +30,6 @@ jobs: { name: "macOS (x86 native)", os: macos-13, - homebrew-prefix: /usr/local, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos-x86, target: native, @@ -47,7 +45,6 @@ jobs: { name: "macOS (wasix)", os: macos-latest, - homebrew-prefix: /opt/homebrew, bin-path: target/release-compact/winterjs, artifact-name: winterjs-macos-wasix, target: wasix, @@ -81,7 +78,8 @@ jobs: if: ${{ startsWith(matrix.metadata.os, 'macos-') }} run: | brew install wabt llvm@15 - echo PATH="${{ matrix.metadata.homebrew-prefx }}/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV + [ -d "/opt/homebrew" ] && echo PATH="/opt/homebrew/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV + [ ! -d "/opt/homebrew" ] && echo PATH="/usr/local/opt/llvm@15/bin:$PATH" >> $GITHUB_ENV npm i -g wasm-opt pnpm concurrently - name: Tool Versions From c4a0cea234d12cad4b911f3e9bcfd22c5a98e9cd Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Thu, 4 Jul 2024 16:18:49 +0200 Subject: [PATCH 23/23] Comment wasix on mac for now --- .github/workflows/build-and-test.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 47387d0ca..1366a3c16 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -42,14 +42,14 @@ jobs: target: wasix, wasix-toolchain-release-asset: rust-toolchain-x86_64-unknown-linux-gnu.tar.gz }, - { - name: "macOS (wasix)", - os: macos-latest, - bin-path: target/release-compact/winterjs, - artifact-name: winterjs-macos-wasix, - target: wasix, - wasix-toolchain-release-asset: rust-toolchain-aarch64-apple-darwin.tar.gz - } + # { + # name: "macOS (wasix)", + # os: macos-latest, + # bin-path: target/release-compact/winterjs, + # artifact-name: winterjs-macos-wasix, + # target: wasix, + # wasix-toolchain-release-asset: rust-toolchain-aarch64-apple-darwin.tar.gz + # } ] name: Build and Test - ${{ matrix.metadata.name }} runs-on: ${{ matrix.metadata.os }}