This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
39
unikernel/duniverse/dune_/.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
39
unikernel/duniverse/dune_/.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: File an issue to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Thank you for filing an issue to help us improve Dune! -->
|
||||
## Expected Behavior
|
||||
|
||||
|
||||
## Actual Behavior
|
||||
|
||||
|
||||
## Reproduction
|
||||
|
||||
<!-- If possible, please open a PR with a test that reproduces the problem.
|
||||
Adding tests is easy, see https://github.com/ocaml/dune/blob/master/doc/hacking.rst -->
|
||||
|
||||
- PR with a reproducing test:
|
||||
|
||||
<!-- Otherwise, please detail how the behavior can be reproduced -->
|
||||
|
||||
1.
|
||||
1.
|
||||
1.
|
||||
|
||||
## Specifications
|
||||
|
||||
- Version of `dune` (output of `dune --version`):
|
||||
- Version of `ocaml` (output of `ocamlc --version`):
|
||||
- Operating system (distribution and version):
|
||||
|
||||
<!-- remove the following if not used -->
|
||||
## Additional information
|
||||
|
||||
- Link to gist with verbose output (run `dune` with the `--verbose` flag):
|
||||
20
unikernel/duniverse/dune_/.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
unikernel/duniverse/dune_/.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea to improve dune
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Thank you for filing an issue to help us improve Dune! -->
|
||||
## Desired Behavior
|
||||
|
||||
<!-- Please describe the desired behavior in as much detail as you can. This
|
||||
should include the context in which you think this would be useful. -->
|
||||
|
||||
## Example
|
||||
|
||||
<!-- Please provide a concrete example of the proposed functionality. This would
|
||||
include a minimal working example of the files you're trying to build with.
|
||||
-->
|
||||
45
unikernel/duniverse/dune_/.github/ISSUE_TEMPLATE/release.md
vendored
Normal file
45
unikernel/duniverse/dune_/.github/ISSUE_TEMPLATE/release.md
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
name: Release
|
||||
about: Open a release tracker issue
|
||||
title: "X.Y.Z release tracker"
|
||||
labels: ["release"]
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
<!-- If release is Patch release use section { -->
|
||||
## Preparation
|
||||
|
||||
- Need backport:
|
||||
- [link to PR to backport]
|
||||
- Backports:
|
||||
- [link to backport PR]
|
||||
|
||||
<!-- } else if release is Minor release use section { -->
|
||||
## Known blockers
|
||||
|
||||
- [ ] Something is blocking the PR because of ...
|
||||
|
||||
<!-- } -->
|
||||
|
||||
## Release
|
||||
|
||||
<!-- Replace X.Y.Z with the correct Dune version -->
|
||||
|
||||
- [ ] Update dune changelog to `X.Y.Z` on `X.Y` branch [link to dune PR]
|
||||
- [ ] Open then pull request on `opam-repository` [link to OPAM PR]
|
||||
- [ ] Triage (ensure it does not break anything)
|
||||
- [ ] Update nix-overlays with the new version [link to nix-overlays PRs]
|
||||
|
||||
## Post-release
|
||||
|
||||
- [ ] Merge dune changelog in `main` [link to dune PR]
|
||||
- [ ] Update ocaml.org changelog [link to ocaml.org PR]
|
||||
- [ ] Write a post about the release on Discuss [link to post]
|
||||
- [ ] Store the revdeps error file in the [logs](https://github.com/ocaml/dune/wiki/Reverse-dependencies-CI-logs)
|
||||
- [ ] Create a next release milestone
|
||||
<!-- If minor release uncomment this -->
|
||||
<!-- - [ ] Increase `lang dune` number -->
|
||||
|
||||
## Last stage
|
||||
|
||||
- [ ] Close tracking issue
|
||||
171
unikernel/duniverse/dune_/.github/workflows/bench.yml
vendored
Normal file
171
unikernel/duniverse/dune_/.github/workflows/bench.yml
vendored
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
name: Build time benchmarks
|
||||
|
||||
# Do not run this workflow on pull request since this workflow has permission to modify contents.
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
permissions:
|
||||
# deployments permission to deploy GitHub pages website
|
||||
deployments: write
|
||||
# contents permission to update benchmark contents in gh-pages branch
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
ocaml-compiler:
|
||||
- 5.1.x
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Use OCaml ${{ matrix.ocaml-compiler }}
|
||||
uses: ocaml/setup-ocaml@v3
|
||||
with:
|
||||
ocaml-compiler: ${{ matrix.ocaml-compiler }}
|
||||
opam-depext: false
|
||||
|
||||
# dune doesn't have any additional dependencies so we can build it right
|
||||
# away this makes it possible to see build errors as soon as possible
|
||||
- run: opam exec -- make _boot/dune.exe
|
||||
|
||||
- name: Install deps on Unix
|
||||
run: |
|
||||
opam install . --deps-only --with-test
|
||||
opam exec -- make dev-deps
|
||||
# Install hyperfine
|
||||
wget https://github.com/sharkdp/hyperfine/releases/download/v1.14.0/hyperfine_1.14.0_amd64.deb
|
||||
sudo dpkg -i hyperfine_1.14.0_amd64.deb
|
||||
|
||||
- name: Create watch synthetic benchmark
|
||||
working-directory: bench
|
||||
run: opam exec -- ../_boot/dune.exe exec ./gen_synthetic_dune_watch.exe -- synthetic-watch
|
||||
|
||||
- name: Run synthetic watch benchmark
|
||||
working-directory: bench/synthetic-watch
|
||||
run: ../gen-benchmark.sh 'opam exec -- ../run-synthetic-dune-watch.sh ../../_boot/dune.exe' 'opam exec -- ../../_boot/dune.exe build @all' 'synthetic watch build time (warm, ${{ runner.os }})' > synthetic-benchmark-result.json
|
||||
|
||||
- name: Print synthetic watch benchmark results
|
||||
working-directory: bench/synthetic-watch
|
||||
run: |
|
||||
cat bench.json
|
||||
cat synthetic-benchmark-result.json
|
||||
|
||||
- name: Store synthetic watch benchmark result
|
||||
uses: benchmark-action/github-action-benchmark@v1
|
||||
with:
|
||||
name: Synthetic Watch Benchmark
|
||||
tool: "customSmallerIsBetter"
|
||||
output-file-path: bench/synthetic-watch/synthetic-benchmark-result.json
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
auto-push: true
|
||||
# Ratio indicating how worse the current benchmark result is.
|
||||
# 175% means if last build took 40s and current takes >70s, it will trigger an alert
|
||||
alert-threshold: "225%"
|
||||
fail-on-alert: true
|
||||
# Enable alert commit comment
|
||||
comment-on-alert: true
|
||||
# Mention @jchavarri in the commit comment
|
||||
alert-comment-cc-users: '@jchavarri'
|
||||
|
||||
- name: Clone pupilfirst fork
|
||||
run: git clone --depth 1 https://github.com/jchavarri/pupilfirst.git
|
||||
|
||||
- name: Install all deps
|
||||
working-directory: pupilfirst
|
||||
run: opam install -y . --deps-only
|
||||
|
||||
- name: Run pupilfirst benchmark
|
||||
working-directory: pupilfirst
|
||||
run: ../bench/gen-benchmark.sh 'opam exec -- ../_boot/dune.exe build --root=. @main' 'opam exec -- ../_boot/dune.exe clean --root=.' 'pupilfirst build time (${{ runner.os }})' > melange-benchmark-result.json
|
||||
|
||||
- name: Print pupilfirst benchmark results
|
||||
working-directory: pupilfirst
|
||||
run: |
|
||||
cat bench.json
|
||||
cat melange-benchmark-result.json
|
||||
|
||||
- name: Store melange benchmark result
|
||||
uses: benchmark-action/github-action-benchmark@v1
|
||||
with:
|
||||
name: Melange Benchmark
|
||||
tool: "customSmallerIsBetter"
|
||||
output-file-path: pupilfirst/melange-benchmark-result.json
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
auto-push: true
|
||||
# Ratio indicating how worse the current benchmark result is.
|
||||
# 150% means if last build took 40s and current takes >60s, it will trigger an alert
|
||||
alert-threshold: "225%"
|
||||
fail-on-alert: true
|
||||
# Enable alert commit comment
|
||||
comment-on-alert: true
|
||||
# Mention @jchavarri in the commit comment
|
||||
alert-comment-cc-users: '@jchavarri'
|
||||
|
||||
- name: Create synthetic benchmark
|
||||
working-directory: bench
|
||||
run: opam exec -- ../_boot/dune.exe exec ./gen_synthetic.exe -- -n 2000 synthetic
|
||||
|
||||
- name: Run cold synthetic benchmark
|
||||
working-directory: bench/synthetic
|
||||
run: ../gen-benchmark.sh 'opam exec -- ../../_boot/dune.exe build @all' 'opam exec -- ../../_boot/dune.exe clean' 'synthetic build time (cold, ${{ runner.os }})' > synthetic-benchmark-result.json
|
||||
|
||||
- name: Print cold synthetic benchmark results
|
||||
working-directory: bench/synthetic
|
||||
run: |
|
||||
cat bench.json
|
||||
cat synthetic-benchmark-result.json
|
||||
|
||||
- name: Store cold synthetic benchmark result
|
||||
uses: benchmark-action/github-action-benchmark@v1
|
||||
with:
|
||||
name: Synthetic Benchmark
|
||||
tool: "customSmallerIsBetter"
|
||||
output-file-path: bench/synthetic/synthetic-benchmark-result.json
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
auto-push: true
|
||||
# Ratio indicating how worse the current benchmark result is.
|
||||
# 150% means if last build took 40s and current takes >60s, it will trigger an alert
|
||||
alert-threshold: "225%"
|
||||
fail-on-alert: true
|
||||
# Enable alert commit comment
|
||||
comment-on-alert: true
|
||||
# Mention @jchavarri in the commit comment
|
||||
alert-comment-cc-users: '@jchavarri'
|
||||
|
||||
- name: Run warm synthetic benchmark
|
||||
working-directory: bench/synthetic
|
||||
run: ../gen-benchmark.sh 'opam exec -- ../../_boot/dune.exe build @all' 'true' 'synthetic build time (warm, ${{ runner.os }})' > synthetic-benchmark-result.json
|
||||
|
||||
- name: Print warm synthetic benchmark results
|
||||
working-directory: bench/synthetic
|
||||
run: |
|
||||
cat bench.json
|
||||
cat synthetic-benchmark-result.json
|
||||
|
||||
- name: Store warm synthetic benchmark result
|
||||
uses: benchmark-action/github-action-benchmark@v1
|
||||
with:
|
||||
name: Synthetic Benchmark
|
||||
tool: "customSmallerIsBetter"
|
||||
output-file-path: bench/synthetic/synthetic-benchmark-result.json
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
auto-push: true
|
||||
# Ratio indicating how worse the current benchmark result is.
|
||||
# 150% means if last build took 40s and current takes >60s, it will trigger an alert
|
||||
alert-threshold: "225%"
|
||||
fail-on-alert: true
|
||||
# Enable alert commit comment
|
||||
comment-on-alert: true
|
||||
# Mention @jchavarri in the commit comment
|
||||
alert-comment-cc-users: '@jchavarri'
|
||||
40
unikernel/duniverse/dune_/.github/workflows/binaries.yml
vendored
Normal file
40
unikernel/duniverse/dune_/.github/workflows/binaries.yml
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
name: Binaries
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
binary:
|
||||
name: Create
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: macos-13
|
||||
name: x86_64-apple-darwin
|
||||
installable: .#
|
||||
- os: macos-14
|
||||
name: aarch64-apple-darwin
|
||||
installable: .#
|
||||
- os: ubuntu-22.04
|
||||
name: x86_64-unknown-linux-musl
|
||||
installable: .#dune-static
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # for git describe
|
||||
- uses: cachix/install-nix-action@v22
|
||||
- run: echo "(version $(git describe --always --dirty --abbrev=7))" >> dune-project
|
||||
- run: nix build ${{ matrix.installable }}
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: result/bin/dune
|
||||
name: dune-${{ matrix.name }}
|
||||
combine:
|
||||
runs-on: ubuntu-latest
|
||||
needs: binary
|
||||
steps:
|
||||
- uses: actions/upload-artifact/merge@v4
|
||||
with:
|
||||
separate-directories: true
|
||||
27
unikernel/duniverse/dune_/.github/workflows/mirage.yml
vendored
Normal file
27
unikernel/duniverse/dune_/.github/workflows/mirage.yml
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
name: Mirage
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build caldav
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone caldav
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: roburio/caldav
|
||||
ref: 51f0d150542348dc259b7c9f7bc70ee592243f7f
|
||||
- name: Use OCaml ${{ matrix.ocaml-compiler }}
|
||||
uses: ocaml/setup-ocaml@v3
|
||||
with:
|
||||
ocaml-compiler: 4.14.x
|
||||
opam-depext: false
|
||||
- run: opam repo set-url default git+https://github.com/ocaml/opam-repository#dc24cade5f037058a4d86fcdd008159923152db5
|
||||
- run: sed -i s/1.3/2.7/ dune-project
|
||||
- run: opam pin add -n dune.dev git+https://github.com/ocaml/dune#$GITHUB_SHA
|
||||
- run: sudo apt install libseccomp-dev
|
||||
- run: opam install mirage.4.4.2 opam-monorepo.0.3.6
|
||||
- run: cd mirage; opam exec -- mirage configure -f config.ml -t hvt
|
||||
- run: cd mirage; opam exec -- make depend lock pull build
|
||||
38
unikernel/duniverse/dune_/.github/workflows/oxcaml.yml
vendored
Normal file
38
unikernel/duniverse/dune_/.github/workflows/oxcaml.yml
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
name: OxCaml (experimental)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
oxcaml:
|
||||
name: Building Dune with OxCaml
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install OCaml
|
||||
uses: ocaml/setup-ocaml@v3
|
||||
with:
|
||||
ocaml-compiler: ocaml-variants.5.2.0+ox
|
||||
# CR maiste: Update jst to not depend on a working commit anymore. It
|
||||
# prevents non working commits to break the Dune CI
|
||||
opam-repositories: |
|
||||
oxcaml: "git+https://github.com/oxcaml/opam-repository.git"
|
||||
default: "git+https://github.com/ocaml/opam-repository.git"
|
||||
|
||||
- name: Install deps
|
||||
run: |
|
||||
opam install . --deps-only
|
||||
|
||||
- name: Build dune
|
||||
run: opam exec -- make bootstrap
|
||||
|
||||
- name: Run OxCaml tests
|
||||
run: opam exec -- ./dune.exe test ./test/blackbox-tests/test-cases/oxcaml
|
||||
300
unikernel/duniverse/dune_/.github/workflows/workflow.yml
vendored
Normal file
300
unikernel/duniverse/dune_/.github/workflows/workflow.yml
vendored
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
merge_group:
|
||||
|
||||
concurrency:
|
||||
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
|
||||
#
|
||||
# Stage 1
|
||||
#
|
||||
|
||||
nix-build:
|
||||
name: Nix Build
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- macos-latest
|
||||
- ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
extra_nix_config: |
|
||||
extra-substituters = https://anmonteiro.nix-cache.workers.dev
|
||||
extra-trusted-public-keys = ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=
|
||||
- run: nix build
|
||||
|
||||
nix-test:
|
||||
name: Nix Tests
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
extra_nix_config: |
|
||||
extra-substituters = https://anmonteiro.nix-cache.workers.dev
|
||||
extra-trusted-public-keys = ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=
|
||||
- run: nix develop -i -c make test
|
||||
|
||||
fmt:
|
||||
name: Format
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
extra_nix_config: |
|
||||
extra-substituters = https://anmonteiro.nix-cache.workers.dev
|
||||
extra-trusted-public-keys = ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=
|
||||
- run: nix develop .#fmt -c make fmt
|
||||
|
||||
doc:
|
||||
name: Documentation
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
extra_nix_config: |
|
||||
extra-substituters = https://anmonteiro.nix-cache.workers.dev
|
||||
extra-trusted-public-keys = ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=
|
||||
- run: nix develop .#doc -c make doc
|
||||
env:
|
||||
LC_ALL: C
|
||||
|
||||
#
|
||||
# Stage 2
|
||||
#
|
||||
|
||||
build:
|
||||
name: Build
|
||||
# we only start building our other jobs, once our main tests have passed
|
||||
needs: nix-test
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Please keep the list in sync with the minimal version of OCaml in
|
||||
# dune-project, dune.opam.template and bootstrap.ml
|
||||
#
|
||||
# We don't run tests on all versions of the Windows environment and on
|
||||
# 4.02.x and 4.07.x in other environments
|
||||
include:
|
||||
# OCaml trunk:
|
||||
- ocaml-compiler: ocaml-variants.5.4.0+trunk
|
||||
os: ubuntu-latest
|
||||
# OCaml 5:
|
||||
## ubuntu (x86)
|
||||
- ocaml-compiler: 5.3.x
|
||||
os: ubuntu-latest
|
||||
run_tests: true
|
||||
## macos (Apple Silicon)
|
||||
- ocaml-compiler: 5.3.x
|
||||
os: macos-latest
|
||||
run_tests: true
|
||||
## macos (x86)
|
||||
- ocaml-compiler: 5.3.x
|
||||
os: macos-13
|
||||
## MSVC
|
||||
- ocaml-compiler: ocaml-compiler.5.3.0,system-msvc
|
||||
os: windows-latest
|
||||
run_tests: true
|
||||
## mingw
|
||||
- ocaml-compiler: ocaml-base-compiler.5.3.0,system-mingw
|
||||
os: windows-latest
|
||||
run_tests: true
|
||||
# OCaml 4:
|
||||
## ubuntu (x86)
|
||||
- ocaml-compiler: 4.14.x
|
||||
os: ubuntu-latest
|
||||
## ubuntu (x86-32)
|
||||
- ocaml-compiler: "ocaml-variants.4.14.2+options,ocaml-option-32bit"
|
||||
os: ubuntu-latest
|
||||
apt_update: true
|
||||
## macos (Apple Silicon)
|
||||
- ocaml-compiler: 4.14.x
|
||||
os: macos-latest
|
||||
# OCaml 4.08:
|
||||
## ubuntu (x86)
|
||||
- ocaml-compiler: 4.08.x
|
||||
os: ubuntu-latest
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# The 32 bit gcc/g++ packages are by default out-of-date so we need to
|
||||
# manually update our package listing.
|
||||
- name: Update apt package listing
|
||||
if: ${{ matrix.apt_update == true }}
|
||||
run: sudo apt update
|
||||
|
||||
- name: Use OCaml ${{ matrix.ocaml-compiler }}
|
||||
uses: ocaml/setup-ocaml@v3
|
||||
with:
|
||||
ocaml-compiler: ${{ matrix.ocaml-compiler }}
|
||||
|
||||
# Install ocamlfind-secondary and ocaml-secondary-compiler, if needed
|
||||
- run: opam install ./dune.opam --deps-only --with-test
|
||||
|
||||
- name: Install system deps on macOS
|
||||
run: brew install coreutils pkg-config file
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
|
||||
# dune doesn't have any additional dependencies so we can build it right
|
||||
# away this makes it possible to see build errors as soon as possible
|
||||
- run: opam exec -- make release
|
||||
|
||||
- name: Install deps
|
||||
# CR-soon Alizter: Lwt 5.9.2 breaks on msvc so we pin it here. Remove
|
||||
# this when https://github.com/ocsigen/lwt/issues/1071 is fixed.
|
||||
run: |
|
||||
opam pin add lwt 5.9.1 --no-action
|
||||
opam install . --deps-only --with-test
|
||||
opam exec -- make dev-deps
|
||||
if: ${{ matrix.run_tests }}
|
||||
|
||||
- name: Run test suite on Unix
|
||||
run: opam exec -- make test
|
||||
if: ${{ matrix.os != 'windows-latest' && matrix.run_tests }}
|
||||
|
||||
- name: Run test suite on Win32
|
||||
run: opam exec -- make test-windows
|
||||
if: ${{ matrix.os == 'windows-latest' && matrix.run_tests }}
|
||||
|
||||
# We never build configurator
|
||||
- name: Build configurator
|
||||
run: opam install ./dune-configurator.opam
|
||||
if: ${{ matrix.configurator == true }}
|
||||
|
||||
coq:
|
||||
name: Coq 8.16.1
|
||||
needs: nix-build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
extra_nix_config: |
|
||||
extra-substituters = https://anmonteiro.nix-cache.workers.dev
|
||||
extra-trusted-public-keys = ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=
|
||||
- run: nix develop .#coq -c make test-coq
|
||||
env:
|
||||
# We disable the Dune cache when running the tests
|
||||
DUNE_CACHE: disabled
|
||||
|
||||
wasm:
|
||||
name: Wasm_of_ocaml
|
||||
needs: nix-build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: latest
|
||||
|
||||
- name: Set-up Binaryen
|
||||
uses: Aandreba/setup-binaryen@v1.0.0
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Use OCaml 5.2.x
|
||||
uses: ocaml/setup-ocaml@v3
|
||||
with:
|
||||
ocaml-compiler: 5.2.x
|
||||
|
||||
- name: Install faked binaryen-bin package
|
||||
# The binaries have already been downloaded
|
||||
run: opam install --fake binaryen-bin
|
||||
|
||||
- name: Install Wasm_of_ocaml
|
||||
run: opam install "wasm_of_ocaml-compiler>=6.1"
|
||||
|
||||
- name: Set Git User
|
||||
run: |
|
||||
git config --global user.name github-actions[bot]
|
||||
git config --global user.email github-actions[bot]@users.noreply.github.com
|
||||
|
||||
- name: Run Tests
|
||||
run: opam exec -- make test-wasm
|
||||
|
||||
cygwin:
|
||||
name: Cygwin Build
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Cygwin
|
||||
uses: cygwin/cygwin-install-action@v6
|
||||
with:
|
||||
packages: ocaml gcc-core make
|
||||
- name: Bootstrap Dune
|
||||
run: make bootstrap
|
||||
## In order to build dune locally we need to have the re library
|
||||
## available. Even if we do, it is likely that our vendored blake3 rules
|
||||
## will miss cygwin support. So for now, we don't enable the rest.
|
||||
|
||||
# - name: Build Dune
|
||||
# run: _boot/dune build dune.install
|
||||
|
||||
create-local-opam-switch:
|
||||
name: Create local opam switch
|
||||
needs: nix-build
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
os:
|
||||
- macos-latest
|
||||
- ubuntu-latest
|
||||
ocaml-compiler:
|
||||
- 5
|
||||
- 4.14
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Use OCaml ${{ matrix.ocaml-compiler }}
|
||||
uses: ocaml/setup-ocaml@v3
|
||||
with:
|
||||
ocaml-compiler: ${{ matrix.ocaml-compiler }}
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create an empty switch
|
||||
run: opam switch create . --empty
|
||||
- name: Pin local packages to local dependencies
|
||||
run: opam pin add . -n --with-version=dev
|
||||
- name: Install external dependencies
|
||||
run: opam install .
|
||||
|
||||
build-microbench:
|
||||
name: Build microbenchmarks
|
||||
needs: nix-build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
extra_nix_config: |
|
||||
extra-substituters = https://anmonteiro.nix-cache.workers.dev
|
||||
extra-trusted-public-keys = ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY=
|
||||
- run: nix develop .#microbench -c make dune build bench/micro
|
||||
Loading…
Add table
Add a link
Reference in a new issue