109 lines
3.2 KiB
YAML
109 lines
3.2 KiB
YAML
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
|