2019-05-14 20:16:14 +04:00
|
|
|
variables:
|
2019-05-14 20:17:39 +04:00
|
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
2019-05-14 20:16:14 +04:00
|
|
|
|
2019-05-27 14:06:56 +04:00
|
|
|
stages:
|
|
|
|
- build
|
2019-05-27 20:00:46 +04:00
|
|
|
- build_and_deploy
|
2019-05-27 14:21:01 +04:00
|
|
|
- test
|
|
|
|
|
2019-05-27 14:06:56 +04:00
|
|
|
|
|
|
|
.docker: &docker
|
|
|
|
image: docker:1.11
|
|
|
|
services:
|
|
|
|
- docker:dind
|
2019-05-27 18:31:57 +04:00
|
|
|
|
|
|
|
.docker_build: &docker_build
|
|
|
|
script:
|
|
|
|
- docker build -t $LIGO_REGISTRY_IMAGE:latest -f ./docker/Dockerfile .
|
2019-05-27 14:06:56 +04:00
|
|
|
|
2019-05-24 02:48:11 +04:00
|
|
|
.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:-}"
|
2019-05-14 18:37:29 +04:00
|
|
|
|
2019-05-24 02:48:11 +04:00
|
|
|
# Initialise opam
|
|
|
|
- printf '' | opam init --bare
|
|
|
|
- eval $(opam config env)
|
2019-05-14 18:37:29 +04:00
|
|
|
|
2019-05-24 02:48:11 +04:00
|
|
|
# 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
|
|
|
|
2019-05-24 02:48:11 +04:00
|
|
|
# Show versions and current switch
|
|
|
|
- echo "$PATH"
|
|
|
|
- opam --version
|
|
|
|
- printf '' | ocaml
|
|
|
|
- opam switch
|
2019-05-14 18:37:29 +04:00
|
|
|
|
2019-05-15 17:17:04 +04:00
|
|
|
local-dune-job:
|
2019-05-24 02:48:11 +04:00
|
|
|
<<: *before_script
|
2019-05-27 14:06:56 +04:00
|
|
|
stage: test
|
2019-05-15 17:17:04 +04:00
|
|
|
script:
|
2019-05-27 14:42:06 +04:00
|
|
|
- vendors/opam-repository-tools/rewrite-local-opam-repository.sh
|
2019-05-27 13:30:28 +04:00
|
|
|
- opam repository add localrepo "file://$PWD/vendors/ligo-opam-repository-local-generated/"
|
2019-05-15 17:17:04 +04:00
|
|
|
- opam install -y --build-test --deps-only ./src/
|
2019-05-16 17:28:28 +04:00
|
|
|
- dune build -p ligo
|
2019-05-15 17:17:04 +04:00
|
|
|
# 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
|
2019-05-15 17:17:04 +04:00
|
|
|
|
2019-05-14 18:37:29 +04:00
|
|
|
local-repo-job:
|
2019-05-24 02:48:11 +04:00
|
|
|
<<: *before_script
|
2019-05-27 14:06:56 +04:00
|
|
|
stage: test
|
2019-05-14 18:37:29 +04:00
|
|
|
script:
|
2019-05-27 14:06:56 +04:00
|
|
|
- vendors/opam-repository-tools/rewrite-local-opam-repository.sh
|
2019-05-27 13:30:28 +04:00
|
|
|
- opam repository add localrepo "file://$PWD/vendors/ligo-opam-repository-local-generated/"
|
2019-05-14 20:42:45 +04:00
|
|
|
#--build-test
|
2019-05-15 17:17:04 +04:00
|
|
|
- opam install -y ligo
|
2019-05-14 18:37:29 +04:00
|
|
|
|
2019-05-14 20:16:14 +04:00
|
|
|
remote-repo-job:
|
2019-05-24 02:48:11 +04:00
|
|
|
<<: *before_script
|
2019-05-27 14:06:56 +04:00
|
|
|
stage: test
|
2019-05-14 18:37:29 +04:00
|
|
|
script:
|
|
|
|
# Add repository
|
2019-05-27 13:30:00 +04:00
|
|
|
- opam repository add ligo-repository https://gitlab.com/ligolang/ligo.git
|
2019-05-14 18:37:29 +04:00
|
|
|
- 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-24 02:13:31 +04:00
|
|
|
|
2019-05-27 19:36:08 +04:00
|
|
|
# Run a docker build without publishing to the registry
|
|
|
|
build-current-docker-image:
|
|
|
|
stage: build
|
|
|
|
<<: *docker
|
|
|
|
<<: *docker_build
|
|
|
|
except:
|
|
|
|
- master
|
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:
|
2019-05-27 20:00:46 +04:00
|
|
|
stage: build_and_deploy
|
2019-05-27 14:06:56 +04:00
|
|
|
<<: *docker
|
2019-05-27 19:36:08 +04:00
|
|
|
<<: *docker_build
|
2019-05-27 18:41:59 +04:00
|
|
|
after_script:
|
2019-05-27 17:07:55 +04:00
|
|
|
- docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD
|
2019-05-27 18:31:57 +04:00
|
|
|
- docker push $LIGO_REGISTRY_IMAGE:latest
|
2019-05-27 19:36:08 +04:00
|
|
|
only:
|
|
|
|
- master
|