1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
name: Main Workflow
env:
OPAMYES: true
OPAMSOLVERTIMEOUT: 300
on:
pull_request:
branches:
- main
- next
push:
branches:
- main
- next
jobs:
build_dune_ocaml_versions:
name: Build with dune on different ocaml versions
strategy:
matrix:
os:
- ubuntu-latest
ocaml-version:
- 4.04.2
- 4.05.0
- 4.10.0
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Retrieve opam cache
uses: actions/cache@v2
id: cache-opam
with:
path: ~/.opam
key: v1-${{ runner.os }}-psmt2-frontend-dune-${{ matrix.ocaml-version }}-${{ hashFiles('*.opam') }}
- name: Use OCaml ${{ matrix.ocaml-version }}
uses: avsm/setup-ocaml@v1
with:
ocaml-version: ${{ matrix.ocaml-version }}
- run: opam pin add . --no-action
- run: opam depext psmt2-frontend_bin psmt2-frontend
- run: opam install ./*.opam --deps-only --with-test
- run: opam exec -- dune build @install
- name: run test suite
run: opam exec -- dune build @runtest
- name: test source is well formatted
run: opam exec -- dune build @fmt
continue-on-error: true
if: matrix.ocaml-version == '4.10.0'
build_opam_os:
name: Build with opam on different OS
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
ocaml-version:
- 4.10.0
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Retrieve opam cache
uses: actions/cache@v2
id: cache-opam
with:
path: ~/.opam
key: v1-${{ runner.os }}-psmt2-frontend-opam-${{ matrix.ocaml-version }}-${{ hashFiles('*.opam') }}
- name: Use OCaml ${{ matrix.ocaml-version }}
uses: avsm/setup-ocaml@v1
with:
ocaml-version: ${{ matrix.ocaml-version }}
- run: opam pin add . --no-action
- run: opam depext psmt2-frontend_bin psmt2-frontend
- run: opam install ./*.opam --deps-only --with-test
- run: opam install .
|