name: main

on: [push, pull_request]

jobs:
  no-naked-pointers:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: configure tree
      run: ./configure --disable-naked-pointers --disable-stdlib-manpages
    - name: Build
      run: |
        make -j world.opt
    - name: Run the testsuite
      run: |
        make -C testsuite USE_RUNTIME=d all
  i386-static:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Packages
      run: |
        sudo apt-get update -y && sudo apt-get install -y gcc-multilib gfortran-multilib
    - name: configure tree
      run: |
        XARCH=i386 CONFIG_ARG='--disable-stdlib-manpages --disable-shared' bash -xe tools/ci/actions/runner.sh configure
    - name: Build
      run: |
        bash -xe tools/ci/actions/runner.sh build
    - name: Run the testsuite
      run: |
        bash -xe tools/ci/actions/runner.sh test
    - name: Install
      run: |
        bash -xe tools/ci/actions/runner.sh install
    - name: Other checks
      run: |
        bash -xe tools/ci/actions/runner.sh other-checks
  full-flambda:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Packages
      run: |
        sudo apt-get update -y && sudo apt-get install -y texlive-latex-extra texlive-fonts-recommended
  # Ensure that make distclean can be run from an empty tree
    - name: distclean
      run: |
        MAKE_ARG=-j make distclean
    - name: configure tree
      run: |
        MAKE_ARG=-j XARCH=x64 CONFIG_ARG='--enable-flambda --enable-dependency-generation' OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh configure
    - name: Build
      run: |
        MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh build
    - name: Run the testsuite
      run: |
        MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh test
    - name: Build API Documentation
      run: |
        MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh api-docs
    - name: Install
      run: |
        MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh install
    - name: Other checks
      run: |
        MAKE_ARG=-j OCAMLRUNPARAM=b,v=0 bash -xe tools/ci/actions/runner.sh other-checks
