image: continuumio/miniconda:latest stages: - test - build - deploy variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" REGISTRY_HOST: localhost:5000 TAG_LATEST: $REGISTRY_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_NAME:latest TAG_COMMIT: $REGISTRY_HOST/$CI_PROJECT_NAME/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA cache: paths: - .cache/pip # This job tests if the book compiles gracefully after a new addition test-build: stage: test rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push" before_script: - python -V - conda env create -f environment.yml - conda init bash - source ~/.bashrc - conda activate jupyter-book-env script: - jupyter-book clean book/ - jupyter-book build book/ build-book: stage: build image: docker rules: - if: $CI_COMMIT_BRANCH == "publish" && $CI_PIPELINE_SOURCE == "push" before_script: - docker info script: - docker build -t $TAG_LATEST . - docker push $TAG_LATEST deploy-book: stage: deploy image: docker rules: - if: $CI_COMMIT_BRANCH == "publish" && $CI_PIPELINE_SOURCE == "push" script: - docker stop $CI_PROJECT_NAME - docker rm $CI_PROJECT_NAME - docker run -d -p 8000:8000 --name $CI_PROJECT_NAME $TAG_LATEST