Skip to content

feat: Add support for user-defined builtins with Dune plugins #612

feat: Add support for user-defined builtins with Dune plugins

feat: Add support for user-defined builtins with Dune plugins #612

Workflow file for this run

# Installability tests
# ====================
# Check the binary package install correctly on all supported
# platforms (and run the tests)
name: install
# Configure when to run the workflows. Currently only when
# it affects the `master` branch (either pushes to the branch,
# or pull request against it).
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
# Install workflow
# ================
# Goal: Ensure the packages install as separate packages
# using opam
install:
runs-on: ${{ matrix.os }}
# Build Matrix
# --------------
strategy:
# Do not cancel other jobs when one fails
fail-fast: false
matrix:
# Ocaml versions to use
# Also test flambda to make sure the installation time is reasonable
# Note that because on windows, switches have different names, we
# must do a bit of work manually to get a correct ocaml-version
include:
# linux
- ocaml-version: ocaml-base-compiler.4.12.1
os: ubuntu-latest
- ocaml-version: ocaml-base-compiler.4.13.1
os: ubuntu-latest
- ocaml-version: ocaml-base-compiler.4.14.0
os: ubuntu-latest
- ocaml-version: ocaml-variants.4.14.0+options,ocaml-option-flambda
os: ubuntu-latest
- ocaml-version: ocaml-base-compiler.5.0.0
os: ubuntu-latest
- ocaml-version: ocaml-base-compiler.5.1.1
os: ubuntu-latest
- ocaml-version: ocaml-base-compiler.5.2.0
os: ubuntu-latest
# macos
- ocaml-version: ocaml-base-compiler.4.12.1
os: macos-latest
- ocaml-version: ocaml-base-compiler.4.13.1
os: macos-latest
- ocaml-version: ocaml-base-compiler.4.14.0
os: macos-latest
- ocaml-version: ocaml-variants.4.14.0+options,ocaml-option-flambda
os: macos-latest
- ocaml-version: ocaml-base-compiler.5.0.0
os: macos-latest
- ocaml-version: ocaml-base-compiler.5.1.1
os: macos-latest
- ocaml-version: ocaml-base-compiler.5.2.0
os: macos-latest
# Windows
- ocaml-version: ocaml-variants.4.12.1+mingw64c
os: windows-latest
- ocaml-version: ocaml-variants.4.13.1+mingw64c
os: windows-latest
- ocaml-version: ocaml-variants.4.14.0+mingw64c
os: windows-latest
- ocaml-version: ocaml-variants.4.14.0+flambda+mingw64c
os: windows-latest
# Build ENV
# ---------
env:
# Ensure opam will not stop because it waits on some user input
OPAMYES: "true"
# Build/test steps
# ----------------
steps:
# checkout the repo (full clone, necessary for push later)
- name: Checkout the repo
uses: actions/checkout@v3
# Setup ocaml/opam
- name: Setup ocaml/opam
uses: avsm/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-version }}
# Debug
- name: Debugging
run: opam switch list-available
if: always ()
# Run opam udpate to get an up-to-date repo
- name: Update opam repo
run: opam update
# For windows, pin to a git repo to avoid a problem with
# tar unable to correctly handle symlinks to directories in
# archives when they are in the wrong order
# The branch win32 also includes the patch for ocaml that comes from
# the mingw opam repo, cf
# https://github.com/fdopen/opam-repository-mingw/blob/opam2/packages/ocamlbuild/ocamlbuild.0.14.2/files/ocamlbuild-0.14.2.patch
- name: Pin ocamlbuild (windows-only)
run: opam pin add ocamlbuild https://github.com/Gbury/ocamlbuild.git#win32
if: matrix.os == 'windows-latest'
# Install dependencies
- name: Install dependencies
run: opam install . --deps-only --with-test --with-doc
# Install each package
- name: Install dolmen
run: opam install . --with-test --with-doc
timeout-minutes: 20
# Ensure that installation does not take too long
# (particularly with regards to flambda)