mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
CI: Create wasm artifact and use it in the js-benchmarks workflow
This commit is contained in:
parent
73a05f9163
commit
12dc771186
|
|
@ -54,7 +54,7 @@ jobs:
|
|||
runner_labels: ${{ matrix.runner_labels }}
|
||||
os: ${{ matrix.os_name }}
|
||||
arch: ${{ matrix.arch }}
|
||||
cache_key_extra: 'LibJS Artifacts'
|
||||
cache_key_extra: 'LibJS and LibWasm Artifacts'
|
||||
ccache_path: ${{ env.CCACHE_DIR }}
|
||||
download_cache_path: ${{ github.workspace }}/Build/caches
|
||||
vcpkg_cache_path: ${{ github.workspace }}/Build/caches/vcpkg-binary-cache
|
||||
|
|
@ -78,10 +78,19 @@ jobs:
|
|||
-DENABLE_GUI_TARGETS=OFF
|
||||
if: ${{ matrix.os_name == 'macOS' }}
|
||||
|
||||
- name: Build and package js
|
||||
- name: Build js
|
||||
working-directory: Build/distribution
|
||||
run: |
|
||||
ninja js
|
||||
|
||||
- name: Build wasm
|
||||
working-directory: Build/distribution
|
||||
run: |
|
||||
ninja wasm
|
||||
|
||||
- name: Package js and wasm
|
||||
working-directory: Build/distribution
|
||||
run: |
|
||||
cpack
|
||||
|
||||
- name: Save Caches
|
||||
|
|
@ -99,15 +108,33 @@ jobs:
|
|||
run: |
|
||||
set -e
|
||||
tar -xvzf Build/distribution/ladybird-js-${{ matrix.package_type }}.tar.gz
|
||||
./bin/js -c "console.log('Hello, World\!');" > out.txt
|
||||
if ! grep -q "\"Hello, World\!\"" out.txt; then
|
||||
./bin/js -c "console.log('Hello, World\!');" > js-repl-out.txt
|
||||
if ! grep -q "\"Hello, World\!\"" js-repl-out.txt; then
|
||||
echo "Sanity check failed: \"Hello, World\!\" not found in output."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Sanity-check the wasm repl
|
||||
shell: bash
|
||||
run: |
|
||||
set -e
|
||||
tar -xvzf Build/distribution/ladybird-wasm-${{ matrix.package_type }}.tar.gz
|
||||
./bin/wasm -e run_sanity_check -w ${{ github.workspace }}/Libraries/LibWasm/Tests/CI/ci-sanity-check.wasm > wasm-repl-out.txt
|
||||
if ! grep -q "Hello, World\!" wasm-repl-out.txt; then
|
||||
echo "Sanity check failed: Hello, World\! not found in output."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload js package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ladybird-js-${{ matrix.package_type }}
|
||||
path: Build/distribution/ladybird-js*.tar.gz
|
||||
path: Build/distribution/ladybird-js-*.tar.gz
|
||||
retention-days: 7
|
||||
|
||||
- name: Upload wasm package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ladybird-wasm-${{ matrix.package_type }}
|
||||
path: Build/distribution/ladybird-wasm-*.tar.gz
|
||||
retention-days: 7
|
||||
|
|
@ -45,7 +45,7 @@ jobs:
|
|||
sudo apt-get install -y python3-venv
|
||||
|
||||
- name: 'Download JS repl artifact'
|
||||
id: download-artifact
|
||||
id: download-js-artifact
|
||||
uses: dawidd6/action-download-artifact@v11
|
||||
with:
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
|
|
@ -58,14 +58,28 @@ jobs:
|
|||
cd js-repl
|
||||
tar -xvzf ladybird-js-${{ matrix.os_name }}-${{ matrix.arch }}.tar.gz
|
||||
|
||||
- name: 'Run the JS benchmarks'
|
||||
- name: 'Download Wasm repl artifact'
|
||||
id: download-wasm-artifact
|
||||
uses: dawidd6/action-download-artifact@v11
|
||||
with:
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
name: ladybird-wasm-${{ matrix.package_type }}
|
||||
path: wasm-repl
|
||||
|
||||
- name: 'Extract Wasm repl'
|
||||
shell: bash
|
||||
run: |
|
||||
cd wasm-repl
|
||||
tar -xvzf ladybird-wasm-${{ matrix.os_name }}-${{ matrix.arch }}.tar.gz
|
||||
|
||||
- name: 'Run the JS and Wasm benchmarks'
|
||||
shell: bash
|
||||
run: |
|
||||
cd js-benchmarks
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python3 -m pip install -r requirements.txt
|
||||
./run.py --executable=${{ github.workspace }}/js-repl/bin/js --iterations=5
|
||||
./run.py --executable=${{ github.workspace }}/js-repl/bin/js --wasm-executable=${{ github.workspace }}/wasm-repl/bin/wasm --iterations=5
|
||||
|
||||
- name: 'Save results as an artifact'
|
||||
uses: actions/upload-artifact@v4
|
||||
9
Libraries/LibWasm/Tests/CI/ci-sanity-check.c
Normal file
9
Libraries/LibWasm/Tests/CI/ci-sanity-check.c
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#include <emscripten.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// Compiled with: -O3 -g0
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE
|
||||
void run_sanity_check() {
|
||||
printf("Hello, World!\n");
|
||||
}
|
||||
BIN
Libraries/LibWasm/Tests/CI/ci-sanity-check.wasm
Executable file
BIN
Libraries/LibWasm/Tests/CI/ci-sanity-check.wasm
Executable file
Binary file not shown.
|
|
@ -39,11 +39,13 @@ lagom_utility(xml SOURCES xml.cpp LIBS LibFileSystem LibMain LibXML LibURL)
|
|||
|
||||
if (NOT CMAKE_SKIP_INSTALL_RULES)
|
||||
install(TARGETS js COMPONENT js)
|
||||
install(TARGETS wasm COMPONENT wasm)
|
||||
|
||||
set(CPACK_GENERATOR "TGZ")
|
||||
set(CPACK_STRIP_FILES TRUE)
|
||||
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||
set(CPACK_COMPONENTS_ALL js)
|
||||
set(CPACK_COMPONENTS_ALL js wasm)
|
||||
set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
|
||||
if (APPLE)
|
||||
if("arm64" IN_LIST CMAKE_OSX_ARCHITECTURES AND "x86_64" IN_LIST CMAKE_OSX_ARCHITECTURES)
|
||||
set(CPACK_SYSTEM_NAME "macOS-universal2")
|
||||
|
|
@ -55,6 +57,7 @@ if (NOT CMAKE_SKIP_INSTALL_RULES)
|
|||
endif()
|
||||
|
||||
set(CPACK_ARCHIVE_JS_FILE_NAME "ladybird-js-${CPACK_SYSTEM_NAME}")
|
||||
set(CPACK_ARCHIVE_WASM_FILE_NAME "ladybird-wasm-${CPACK_SYSTEM_NAME}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "ladybird-js-${CPACK_SYSTEM_NAME}")
|
||||
include(CPack)
|
||||
endif()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user