# TODO: remove this as submodules aren't used anymore. variables: GIT_SUBMODULE_STRATEGY: recursive stages: - build_docker - build_and_deploy_docker - build_and_deploy_website - test .website_build: &website_build stage: build_and_deploy_website image: node:8 before_script: - cd gitlab-pages/website - npm install script: - npm run version next - npm run build after_script: - cp -r gitlab-pages/website/build/ligo public artifacts: paths: - public .docker: &docker image: docker:1.11 services: - docker:dind .docker_build: &docker_build script: - docker build -t $LIGO_REGISTRY_IMAGE:next -f ./docker/Dockerfile . .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 - scripts/install_native_dependencies.sh - scripts/install_opam.sh - export PATH="/usr/local/bin${PATH:+:}${PATH:-}" # Initialise opam, create switch, load opam environment variables - printf '' | opam init --bare - printf '' | opam switch create ligo-switch ocaml-base-compiler.4.06.1 - eval $(opam config env) # Show versions and current switch - echo "$PATH" - opam --version - printf '' | ocaml - opam switch local-dune-job: <<: *before_script stage: test script: - scripts/setup_ligo_opam_repository.sh - opam install -y --build-test --deps-only ./src/ - dune build -p ligo # TODO: also try instead from time to time: #- (cd ./src/; dune build -p ligo) - dune build @ligo-test # artifacts: # paths: # - src/ligo/bin/cli.ml local-repo-job: <<: *before_script stage: test script: - vendors/opam-repository-tools/rewrite-local-opam-repository.sh - opam repository add localrepo "file://$PWD/vendors/ligo-opam-repository-local-generated/" #--build-test - opam install -y ligo remote-repo-job: <<: *before_script 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 only: - master # Run a docker build without publishing to the registry build-current-docker-image: stage: build_docker <<: *docker <<: *docker_build except: - master - dev # When a MR/PR is merged to dev # take the previous build and publish it to Docker Hub build-and-publish-latest-docker-image: stage: build_and_deploy_docker <<: *docker <<: *docker_build after_script: - docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD - docker push $LIGO_REGISTRY_IMAGE:next only: - dev # Pages are deployed from both master & dev, be careful not to override 'next' # in case something gets merged into 'dev' while releasing. pages: <<: *website_build only: - master - dev