Wasm runtime: clean-up #279
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: wasm_of_ocaml | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
env: | |
WASM_OF_OCAML: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
os-name: | |
- Ubuntu | |
ocaml-compiler: | |
- "4.14" | |
- "5.0" | |
- "5.1" | |
- "5.2" | |
separate_compilation: | |
- true | |
jane_street_tests: | |
- false | |
all_jane_street_tests: | |
- false | |
include: | |
- os: macos-latest | |
os-name: MacOS | |
ocaml-compiler: "5.3" | |
separate_compilation: true | |
jane_street_tests: false | |
all_jane_street_tests: false | |
- os: windows-latest | |
os-name: Windows | |
ocaml-compiler: "5.3" | |
separate_compilation: true | |
# Jane Street tests disabled for now (basement only works on Linux) | |
jane_street_tests: false | |
all_jane_street_tests: false | |
- os: ubuntu-latest | |
os-name: Ubuntu | |
ocaml-compiler: "5.3" | |
separate_compilation: true | |
jane_street_tests: true | |
all_jane_street_tests: true | |
- os: ubuntu-latest | |
os-name: Ubuntu | |
ocaml-compiler: "5.3" | |
separate_compilation: false | |
jane_street_tests: true | |
all_jane_street_tests: false | |
runs-on: ${{ matrix.os }} | |
name: | |
${{ (! matrix.separate_compilation) && 'Whole program / ' || ''}}${{ matrix.ocaml-compiler }} / ${{ matrix.os-name }}${{ matrix.all_jane_street_tests && ' / Jane Street tests' || ''}} | |
steps: | |
- name: Update apt cache | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
run: sudo apt-get update | |
- name: Set git to use LF | |
if: ${{ matrix.os == 'windows-latest' && matrix.ocaml-compiler < 5.2 }} | |
run: | | |
git config --global core.autocrlf false | |
git config --global core.eol lf | |
git config --global core.ignorecase false | |
- name: Checkout tree | |
uses: actions/checkout@v5 | |
with: | |
path: wasm_of_ocaml | |
- name: Checkout Jane Street opam repository | |
if: matrix.jane_street_tests | |
uses: actions/checkout@v5 | |
with: | |
repository: janestreet/opam-repository | |
ref: 2819773f29b6f6c14b918eae3cb40c8ff6b22d0e | |
path: janestreet/opam-repository | |
- name: Set-up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: latest | |
- name: Set-up OCaml ${{ matrix.ocaml-compiler }} | |
uses: ocaml/setup-ocaml@v3 | |
with: | |
ocaml-compiler: ${{ matrix.ocaml-compiler }} | |
- name: Set-up Binaryen | |
uses: Aandreba/[email protected] | |
with: | |
token: ${{ github.token }} | |
- name: Pin faked binaryen-bin package | |
# It's faster to use a cached version | |
run: opam install --fake binaryen-bin | |
# Work-around a race between reinstalling mingw-w64-shims | |
# (because of conf-pkg-config optional dep) and installing other | |
# packages that implicitly depend on mingw-w64-shims. | |
- run: opam install conf-pkg-config conf-mingw-w64-gcc-i686 conf-mingw-w64-g++-x86_64 | |
if: runner.os == 'Windows' | |
- name: Pin wasm_of_ocaml | |
working-directory: ./wasm_of_ocaml | |
run: opam pin . -n --with-version dev | |
- name: Pin dune | |
run: opam pin add dune https://github.com/ocaml/dune.git | |
- name: Checkout Jane Street packages | |
if: matrix.jane_street_tests | |
run: | | |
opam repo add js janestreet/opam-repository | |
opam install opam-format | |
opam pin add ppxlib -n 0.35.0 | |
opam exec -- dune exec --root wasm_of_ocaml tools/ci_setup.exe | |
- name: Pin Jane Street packages | |
if: ${{ ! matrix.jane_street_tests }} | |
run: | | |
opam pin add -n base.v0.16.1 https://github.com/ocaml-wasm/base.git#wasm | |
opam pin add -n time_now.v0.16.1 https://github.com/ocaml-wasm/time_now.git#wasm | |
opam pin add -n ppx_inline_test.v0.16.1 https://github.com/ocaml-wasm/ppx_inline_test.git#wasm | |
opam pin add -n ppx_expect.v0.16.1 https://github.com/ocaml-wasm/ppx_expect.git#wasm | |
- name: Install wasm_of_ocaml and its test dependencies | |
working-directory: ./wasm_of_ocaml | |
run: | | |
opam install . -t | |
- name: Run tests | |
if: ${{ matrix.separate_compilation }} | |
working-directory: ./wasm_of_ocaml | |
run: opam exec -- dune build @runtest-wasm | |
# we continue-on-error on windows because we seem to often hit | |
# an internal assert inside libuv. | |
# See https://github.com/libuv/libuv/issues/3622 | |
- name: Run tests with CPS effects | |
if: ${{ matrix.ocaml-compiler >= '5.' && matrix.separate_compilation }} | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./wasm_of_ocaml | |
run: opam exec -- dune build @runtest-wasm --profile with-effects | |
- name: Run Base tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/base | |
run: opam exec -- dune runtest | |
- name: Run Base bigstring tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/base_bigstring | |
run: opam exec -- dune runtest | |
- name: Run Core tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/core | |
run: opam exec -- dune runtest | |
- name: Run Bignum tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/bignum | |
run: opam exec -- dune runtest | |
- name: Run Bin_prot tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/bin_prot | |
run: opam exec -- dune runtest | |
- name: Run String_dict tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/string_dict | |
run: opam exec -- dune runtest | |
- name: Run Zarith tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/zarith_stubs_js | |
run: opam exec -- dune runtest | |
- name: Run Virtual_dom tests | |
if: matrix.all_jane_street_tests | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/virtual_dom | |
run: opam exec -- dune runtest | |
- name: Run Bonsai tests | |
if: ${{ matrix.all_jane_street_tests && matrix.os != 'windows-latest' }} | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/bonsai_test | |
run: opam exec -- dune runtest | |
- name: Run Bonsai web tests | |
if: ${{ matrix.all_jane_street_tests && matrix.os != 'windows-latest' }} | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/bonsai_web_test | |
run: opam exec -- dune runtest | |
- name: Run Bonsai web components' tests | |
if: ${{ matrix.all_jane_street_tests && matrix.os != 'windows-latest' }} | |
continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
working-directory: ./janestreet/lib/bonsai_web_components | |
run: opam exec -- dune runtest | |
- name: Run Bonsai tests (release profile) | |
if: ${{ ! matrix.separate_compilation }} | |
working-directory: ./janestreet/lib/bonsai_test | |
run: opam exec -- dune runtest --profile release | |
- name: Run Bonsai web tests (release profile) | |
if: ${{ ! matrix.separate_compilation }} | |
working-directory: ./janestreet/lib/bonsai_web_test | |
run: opam exec -- dune runtest --profile release | |
- name: Run Bonsai web components' tests (release profile) | |
if: ${{ ! matrix.separate_compilation }} | |
working-directory: ./janestreet/lib/bonsai_web_components | |
run: opam exec -- dune runtest --profile release |