version: 2.1 jobs: build: docker: - image: ocaml/opam:alpine-ocaml-4.11 environment: PGUSER: pgx PGDATABASE: pgx-test PGHOST: 127.0.0.1 PGX_FORCE_TESTS: true TERM: xterm - image: circleci/postgres:9.6-alpine environment: POSTGRES_USER: pgx POSTGRES_DB: pgx-test POSTGRES_PASSWORD: "" steps: - checkout - run: name: Update opam command: | opam remote remove default --all opam remote add default https://opam.ocaml.org - run: name: Pin packages command: ./pin_dev.sh - run: name: Install system dependencies command: opam depext -y `basename -s .opam *.opam | tr '\n' ' '` - run: name: Install OCaml dependencies command: opam install --deps-only -y `basename -s .opam *.opam | tr '\n' ' '` - run: name: Build command: opam exec -- make - run: # This is a separate step so we don't run tests for all of these ^ name: Install OCaml test dependencies command: opam install --deps-only -t -y `basename -s .opam *.opam | tr '\n' ' '` - run: name: Test and coverage report command: | coverage_set () [[ -n $COVERALLS_REPO_TOKEN ]] opam exec -- make test-coverage (coverage_set && opam exec -- bisect-ppx-report send-to Coveralls) || true dune_lint: docker: - image: ocaml/opam2:4.09 environment: TERM: xterm steps: - checkout - run: name: Pin packages command: ./pin_dev.sh - run: name: Install system dependencies command: opam depext -y dune-release - run: name: Install dependencies command: opam install -y dune-release - run: name: dune-release lint command: opam exec -- dune-release lint build_mirage: docker: - image: ocaml/opam:alpine-ocaml-4.11 environment: TERM: xterm steps: - checkout - run: name: Update opam command: | opam remote remove default --all opam remote add default https://opam.ocaml.org - run: name: Pin packages command: | opam pin add -k git -y -n pgx.dev . opam pin add -k git -y -n pgx_lwt.dev . opam pin add -k git -y -n pgx_lwt_mirage.dev . - run: name: Install system dependencies command: opam depext -y pgx pgx_lwt pgx_lwt_mirage - run: name: Install OCaml dependencies command: | opam install --deps-only -y pgx pgx_lwt pgx_lwt_mirage opam install mirage - run: name: Configure mirage command: cd unikernel && opam exec -- mirage configure -t spt - run: name: Install mirage deps command: cd unikernel && opam exec -- make depend - run: name: Build mirage command: cd unikernel && opam exec -- make workflows: main: jobs: - build - build_mirage - dune_lint