ligo/.gitlab-ci.yml

99 lines
2.7 KiB
YAML
Raw Normal View History

variables:
2019-05-14 20:17:39 +04:00
GIT_SUBMODULE_STRATEGY: recursive
2019-05-27 14:06:56 +04:00
stages:
- build
- deploy
- test
2019-05-27 14:06:56 +04:00
.docker: &docker
image: docker:1.11
services:
- docker:dind
.before_script: &before_script
before_script:
# Install dependencies
# rsync is needed by opam to sync a package installed from a local directory with the copy in ~/.opam
- apt-get update -qq
- apt-get -y -qq install rsync libhidapi-dev libcap-dev libev-dev bubblewrap
- wget https://github.com/ocaml/opam/releases/download/2.0.1/opam-2.0.1-x86_64-linux -O opam-2.0.1-x86_64-linux
- cp opam-2.0.1-x86_64-linux /usr/local/bin/opam
- chmod +x /usr/local/bin/opam
- export PATH="/usr/local/bin${PATH:+:}${PATH:-}"
# Initialise opam
- printf '' | opam init --bare
- eval $(opam config env)
# Create switch
- printf '' | opam switch create toto ocaml-base-compiler.4.06.1
- eval $(opam config env)
2019-05-16 17:28:28 +04:00
# Show versions and current switch
- echo "$PATH"
- opam --version
- printf '' | ocaml
- opam switch
local-dune-job:
<<: *before_script
2019-05-27 14:06:56 +04:00
stage: test
script:
2019-05-27 14:42:06 +04:00
- vendors/opam-repository-tools/rewrite-local-opam-repository.sh
- opam repository add localrepo "file://$PWD/vendors/ligo-opam-repository-local-generated/"
- opam install -y --build-test --deps-only ./src/
2019-05-16 17:28:28 +04:00
- dune build -p ligo
# TODO: also try instead from time to time:
#- (cd ./src/; dune build -p ligo)
2019-05-15 18:35:46 +04:00
- dune build @ligo-test
2019-05-16 17:28:28 +04:00
# artifacts:
# paths:
# - src/ligo/bin/cli.ml
local-repo-job:
<<: *before_script
2019-05-27 14:06:56 +04:00
stage: test
script:
2019-05-27 14:06:56 +04:00
- vendors/opam-repository-tools/rewrite-local-opam-repository.sh
- opam repository add localrepo "file://$PWD/vendors/ligo-opam-repository-local-generated/"
2019-05-14 20:42:45 +04:00
#--build-test
- opam install -y ligo
remote-repo-job:
<<: *before_script
2019-05-27 14:06:56 +04:00
stage: test
script:
# Add repository
- opam repository add ligo-repository https://gitlab.com/ligolang/ligo.git
- eval $(opam config env)
- opam install -y ligo
# Used in the IDE
#- opam install -y user-setup
#- opam install -y merlin
#- opam install -y ocp-indent
#- opam user-setup install
2019-05-27 14:06:56 +04:00
# Run a docker build on the ligo image, to see if the current
# commit does not break it
build-current-docker-image:
stage: build
<<: *docker
script:
- docker build -t $CI_REGISTRY_IMAGE:latest -f ./docker/Dockerfile .
2019-05-27 14:06:56 +04:00
# When a MR/PR is merged to master
# take the previous build and publish it to Docker Hub
build-and-publish-latest-docker-image:
stage: deploy
<<: *docker
dependencies:
- build-current-docker-image
before_script:
- docker login -u $CI_REGISTRY_USER -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY_URL
script:
2019-05-27 14:06:56 +04:00
- docker push $CI_REGISTRY_IMAGE:latest
only:
- master