AMD64
no language set
Git
ejgallego/coq-serapi:.travis.yml@2a2149d
dist: xenial
sudo: required
language: c

branches:
  only:
  - v8.8
  - v8.9
  - v8.10
  - v8.11
  - v8.12
  - v8.13

cache:
  apt: true
  directories:
  - $HOME/.opam

addons:
  apt:
    packages:
    - gcc-multilib

env:
  global:
  - OPAMJOBS="2"
  - OPAMROOTISOK="true"
  - OPAMYES="true"
  - NJOBS="2"
  - COQ_REPOS="https://github.com/coq/coq.git"
  - COQ_VERSION="v8.13"
  - COQ_BRANCH="v8.13"
  - COQ_CONF="-local -native-compiler no -coqide no"
  - COMPILER="4.07.1"
  - EXTRA_OPAM="coq.8.13.0 coq-mathcomp-ssreflect"
  # - SERAPI_COQ_HOME="$HOME/coq-$COQ_VERSION/_build/install/default/lib/"
  # Main test suites; SERAPI_COQ_HOME controls if opam is used or a
  # git branch is installed.
  matrix:
  - TEST_TARGET="test"    COMPILER="4.07.1"
  - TEST_TARGET="test"    COMPILER="4.08.1"
  - TEST_TARGET="test"    COMPILER="4.09.1"
  - TEST_TARGET="test"    COMPILER="4.10.1"
  - TEST_TARGET="test"    COMPILER="4.11.1"
  - TEST_TARGET="js-dune" COMPILER="4.07.1+32bit" EXTRA_OPAM="coq.8.13.0 js_of_ocaml js_of_ocaml-lwt"
  - TEST_TARGET="test"    COMPILER="4.11.1" EXTRA_OPAM="dune" SERAPI_COQ_HOME="$HOME/coq-$COQ_VERSION/_build/install/default/lib/"

install:
- sudo curl -sL https://github.com/ocaml/opam/releases/download/2.0.8/opam-2.0.8-x86_64-linux -o /usr/bin/opam
- sudo chmod 755 /usr/bin/opam
- opam init -c "$COMPILER" --disable-sandboxing
- opam switch set "$COMPILER"
- eval $(opam env)
# OPAM 2 seems quite broken here
- opam repos add coq-released http://coq.inria.fr/opam/released
- opam config set-global jobs $NJOBS
- opam pin add -y -n --kind=path coq-serapi .
- opam install -y --deps-only -j $NJOBS coq-serapi
- opam pin remove coq-serapi
- opam list
- >
  if [[ -v SERAPI_COQ_HOME ]]; then
    opam install -y zarith &&
    git clone --depth=3 -b "$COQ_BRANCH" "$COQ_REPOS" "$HOME/coq-$COQ_VERSION" &&
    pushd "$HOME/coq-$COQ_VERSION"        &&
    make -f Makefile.dune world           &&
    popd;
    PATH="$HOME/coq-$COQ_VERSION/_build/install/default/bin":$PATH &&
    git clone --depth=3 -b master https://github.com/math-comp/math-comp.git &&
    pushd math-comp/mathcomp/ssreflect &&
    make && make install &&
    popd;
  fi
- if [[ -v EXTRA_OPAM ]]; then travis_wait opam install --ignore-constraints-on=coq $EXTRA_OPAM; fi

script:
- set -e
- echo 'Building SerAPI...' && echo -en 'travis_fold:start:serapi.build\\r'
- make -j "$NJOBS" SERAPI_COQ_HOME="$SERAPI_COQ_HOME" "$TEST_TARGET"
- ls -lR _build/install/default/ || true
- ls -lR _build/default/sertop/*.js || true
- echo -en 'travis_fold:end:serapi.build\\r'
Build Config
{
  "os": [
    "linux"
  ],
  "env": {
    "global": [
      "TRAVIS_COMMIT_SHORT=\"$(echo $TRAVIS_COMMIT | cut -b1-7)\"",
      "TRAVIS_COMMIT_LESSSHORT=\"$(echo $TRAVIS_COMMIT | cut -b1-9)\""
    ]
  },
  "dist": "xenial",
  "group": "edge",
  "matrix": {
    "include": [
      {
        "name": "linux",
        "stage": "test",
        "addons": {
          "artifacts": {
            "paths": [
              "./build/linux/amd64/gcloud-cleanup",
              "./build/darwin/amd64/gcloud-cleanup",
              "./build.tar.gz"
            ],
            "enabled": true,
            "target_paths": [
              "travis-ci/gcloud-cleanup/$TRAVIS_BRANCH",
              "travis-ci/gcloud-cleanup/$TRAVIS_COMMIT",
              "travis-ci/gcloud-cleanup/$TRAVIS_COMMIT_SHORT",
              "travis-ci/gcloud-cleanup/$TRAVIS_COMMIT_LESSSHORT"
            ]
          }
        },
        "script": [
          "make copyright",
          "git diff --exit-code",
          "git diff --cached --exit-code",
          "make"
        ],
        "after_success": [
          "bash <(curl -s https://codecov.io/bash)",
          "tar -czvf build.tar.gz build Procfile Makefile"
        ],
        "before_script": [
          "eval \"$(gimme 1.11.4)\""
        ]
      },
      {
        "if": "type != 'pull_request'",
        "name": "docker",
        "addons": {
          "apt": {
            "packages": [
              "docker-ce"
            ]
          }
        },
        "script": [
          "export DOCKER_IMAGE_REPO=travisci/gcloud-cleanup",
          "export VERSION_VALUE=$(git describe --always --dirty --tags 2>/dev/null)",
          "export DOCKER_DEST=$DOCKER_IMAGE_REPO:$VERSION_VALUE",
          "docker build -t $DOCKER_DEST .",
          "docker run --rm -it $DOCKER_DEST gcloud-cleanup --help",
          "script/docker-push $DOCKER_DEST"
        ]
      }
    ]
  },
  "language": "shell"
}