Commit 44d690c7 authored by Lambert Theisen's avatar Lambert Theisen 🔥
Browse files

Start optimizing CI scripts

parent 48c7a32b
Pipeline #307283 canceled with stage
image: docker:stable
variables:
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
APP_DIRECTORY: .
DOCS_DIRECTORY: ${APP_DIRECTORY}/docs
DOCS_LATEX_NAME: fenicsr13
services:
- docker:dind # docker in docker
# image: docker:stable
# variables:
# DOCKER_TLS_CERTDIR: ""
# DOCKER_HOST: tcp://docker:2375
# DOCKER_DRIVER: overlay2
# APP_DIRECTORY: .
# DOCS_DIRECTORY: ${APP_DIRECTORY}/docs
# DOCS_LATEX_NAME: fenicsr13
# services:
# - docker:stable-dind # docker in docker
stages:
- build
- test
- deploy
- prepare
# - build
# - test
# - deploy
# **************************************************************************** #
# build
# **************************************************************************** #
build:environment:
stage: build
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
prepare:docker:
stage: prepare
# before_script:
# - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
# - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA # no need
- docker push $CI_REGISTRY_IMAGE:latest
when: manual
build:doc:
stage: build
image:
name: $CI_REGISTRY_IMAGE:latest
entrypoint: [""]
script:
- cd ${DOCS_DIRECTORY}
- sphinx-apidoc -f -o source/fenicsR13 ../fenicsR13
- sphinx-apidoc -f -o source/tests/heat ../tests/heat
- sphinx-apidoc -f -o source/tests/stress ../tests/stress
- sphinx-apidoc -f -o source/tests/r13 ../tests/r13
- sphinx-apidoc -f -o source/examples ../examples
- make html
- make latex
artifacts:
paths:
- ${DOCS_DIRECTORY}/_build/html/
- ${DOCS_DIRECTORY}/_build/latex/
expire_in: 6 month
# - docker push $CI_REGISTRY_IMAGE:latest
# when: manual
# **************************************************************************** #
# test
# build
# **************************************************************************** #
.test: # dot means "hidden", acts as base class
stage: test
before_script:
- pip install -e . # local install to have right coverage
image:
name: $CI_REGISTRY_IMAGE:latest # use prebuilt image in Gitlab's registry
entrypoint: [""] # == Repo. Has to be done if Dockerfile has own entrypoint
# build:environment:
# stage: build
# before_script:
# - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
# script:
# - docker pull $CI_REGISTRY_IMAGE:latest || true
# - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
# # - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA # no need
# - docker push $CI_REGISTRY_IMAGE:latest
# when: manual
test:pytest:
extends: .test
script:
- cd ${APP_DIRECTORY}
- pytest -v --durations=10
- mkdir convergence_plots
- cp tests/*/*/convergence_plot* convergence_plots/
artifacts:
paths:
- ${APP_DIRECTORY}/convergence_plots
- ${APP_DIRECTORY}/htmlcov
expire_in: 6 month
# build:doc:
# stage: build
# image:
# name: $CI_REGISTRY_IMAGE:latest
# entrypoint: [""]
# script:
# - cd ${DOCS_DIRECTORY}
# - sphinx-apidoc -f -o source/fenicsR13 ../fenicsR13
# - sphinx-apidoc -f -o source/tests/heat ../tests/heat
# - sphinx-apidoc -f -o source/tests/stress ../tests/stress
# - sphinx-apidoc -f -o source/tests/r13 ../tests/r13
# - sphinx-apidoc -f -o source/examples ../examples
# - make html
# - make latex
# artifacts:
# paths:
# - ${DOCS_DIRECTORY}/_build/html/
# - ${DOCS_DIRECTORY}/_build/latex/
# expire_in: 6 month
# **************************************************************************** #
# deploy
# **************************************************************************** #
# # **************************************************************************** #
# # test
# # **************************************************************************** #
deploy:latex:
stage: deploy
image:
# name: blang/latex:ctanfull # only TexLive 2017
name: aergus/latex:latest
entrypoint: [""]
dependencies:
- build:doc
script:
- cd ${DOCS_DIRECTORY}/_build/latex/
- make
artifacts:
paths:
- ${DOCS_DIRECTORY}/_build/latex/${DOCS_LATEX_NAME}.pdf
expire_in: 6 month
only:
- master
- tags
# .test: # dot means "hidden", acts as base class
# stage: test
# before_script:
# - pip install -e . # local install to have right coverage
# image:
# name: $CI_REGISTRY_IMAGE:latest # use prebuilt image in Gitlab's registry
# entrypoint: [""] # == Repo. Has to be done if Dockerfile has own entrypoint
pages:
stage: deploy
dependencies:
- build:doc
script:
- mv ${DOCS_DIRECTORY}/_build/html/ ${CI_PROJECT_DIR}/public/
artifacts:
paths:
- public
only:
- master
- tags
\ No newline at end of file
# test:pytest:
# extends: .test
# script:
# - cd ${APP_DIRECTORY}
# - pytest -v --durations=10
# - mkdir convergence_plots
# - cp tests/*/*/convergence_plot* convergence_plots/
# artifacts:
# paths:
# - ${APP_DIRECTORY}/convergence_plots
# - ${APP_DIRECTORY}/htmlcov
# expire_in: 6 month
# # **************************************************************************** #
# # deploy
# # **************************************************************************** #
# deploy:latex:
# stage: deploy
# image:
# # name: blang/latex:ctanfull # only TexLive 2017
# name: aergus/latex:latest
# entrypoint: [""]
# dependencies:
# - build:doc
# script:
# - cd ${DOCS_DIRECTORY}/_build/latex/
# - make
# artifacts:
# paths:
# - ${DOCS_DIRECTORY}/_build/latex/${DOCS_LATEX_NAME}.pdf
# expire_in: 6 month
# only:
# - master
# - tags
# pages:
# stage: deploy
# dependencies:
# - build:doc
# script:
# - mv ${DOCS_DIRECTORY}/_build/html/ ${CI_PROJECT_DIR}/public/
# artifacts:
# paths:
# - public
# only:
# - master
# - tags
image: docker:stable
variables:
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
APP_DIRECTORY: .
DOCS_DIRECTORY: ${APP_DIRECTORY}/docs
DOCS_LATEX_NAME: fenicsr13
services:
- docker:stable-dind # docker in docker
stages:
- build
- test
- deploy
# **************************************************************************** #
# build
# **************************************************************************** #
build:environment:
stage: build
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
# - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA # no need
- docker push $CI_REGISTRY_IMAGE:latest
when: manual
build:doc:
stage: build
image:
name: $CI_REGISTRY_IMAGE:latest
entrypoint: [""]
script:
- cd ${DOCS_DIRECTORY}
- sphinx-apidoc -f -o source/fenicsR13 ../fenicsR13
- sphinx-apidoc -f -o source/tests/heat ../tests/heat
- sphinx-apidoc -f -o source/tests/stress ../tests/stress
- sphinx-apidoc -f -o source/tests/r13 ../tests/r13
- sphinx-apidoc -f -o source/examples ../examples
- make html
- make latex
artifacts:
paths:
- ${DOCS_DIRECTORY}/_build/html/
- ${DOCS_DIRECTORY}/_build/latex/
expire_in: 6 month
# **************************************************************************** #
# test
# **************************************************************************** #
.test: # dot means "hidden", acts as base class
stage: test
before_script:
- pip install -e . # local install to have right coverage
image:
name: $CI_REGISTRY_IMAGE:latest # use prebuilt image in Gitlab's registry
entrypoint: [""] # == Repo. Has to be done if Dockerfile has own entrypoint
test:pytest:
extends: .test
script:
- cd ${APP_DIRECTORY}
- pytest -v --durations=10
- mkdir convergence_plots
- cp tests/*/*/convergence_plot* convergence_plots/
artifacts:
paths:
- ${APP_DIRECTORY}/convergence_plots
- ${APP_DIRECTORY}/htmlcov
expire_in: 6 month
# **************************************************************************** #
# deploy
# **************************************************************************** #
deploy:latex:
stage: deploy
image:
# name: blang/latex:ctanfull # only TexLive 2017
name: aergus/latex:latest
entrypoint: [""]
dependencies:
- build:doc
script:
- cd ${DOCS_DIRECTORY}/_build/latex/
- make
artifacts:
paths:
- ${DOCS_DIRECTORY}/_build/latex/${DOCS_LATEX_NAME}.pdf
expire_in: 6 month
only:
- master
- tags
pages:
stage: deploy
dependencies:
- build:doc
script:
- mv ${DOCS_DIRECTORY}/_build/html/ ${CI_PROJECT_DIR}/public/
artifacts:
paths:
- public
only:
- master
- tags
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment