Skip to content

Move ReScript and JS/TS code into a single module #323

Move ReScript and JS/TS code into a single module

Move ReScript and JS/TS code into a single module #323

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
ppx_build_linux:
name: ppx_build_linux
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/ppx/src
container:
image: ocaml/opam:alpine-3.16-ocaml-4.12
options: --user root
steps:
- uses: actions/checkout@v3
- name: Opam init
run: opam init -a --disable-sandboxing --compiler=4.12.1
- name: Install deps
run: opam install . --deps-only --with-test
- name: Build
run: opam exec -- dune build --profile static
- name: Copy built PPX file
run: |
mv ./_build/default/bin/bin.exe ppx.exe
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ppx_build_linux
path: packages/ppx/src/ppx.exe
if-no-files-found: error
test:
name: Test
needs: [ppx_build_linux]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- run: pnpm install
- name: Download ppx linux artifacts
uses: actions/download-artifact@v3
with:
name: ppx_build_linux
path: binaries/linux
- name: Move ppx artifacts
run: |
mv binaries/linux/ppx.exe packages/ppx/ppx-linux.exe
- name: Install ppx
run: pnpm ppx:install
- run: pnpm exec rescript build -with-deps
working-directory: packages/tests
- run: pnpm lint:stdlib
- run: pnpm coverage
- uses: codecov/codecov-action@v3
with:
files: coverage/lcov.info
prepack:
name: Prepack
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- run: pnpm install
- run: pnpm res:build
working-directory: packages/prepack
- run: pnpm lint:stdlib
working-directory: packages/prepack
- run: pnpm prepack
benchmark:
name: Benchmark
needs: [ppx_build_linux]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- run: pnpm install
- name: Download ppx linux artifacts
uses: actions/download-artifact@v3
with:
name: ppx_build_linux
path: binaries/linux
- name: Move ppx artifacts
run: |
mv binaries/linux/ppx.exe packages/ppx/ppx-linux.exe
- name: Install ppx
run: pnpm ppx:install
- run: pnpm res:build
working-directory: packages/prepack
- name: Run benchmark
run: pnpm benchmark | tee output.txt
- name: Download previous benchmark data
uses: actions/cache@v3
with:
path: ./cache
key: ${{ runner.os }}-benchmark
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "benchmarkjs"
output-file-path: output.txt
external-data-json-path: ./cache/benchmark-data.json
github-token: ${{ secrets.GITHUB_TOKEN }}
alert-threshold: "150%"
comment-always: true
comment-on-alert: true