Skip to content
Snippets Groups Projects
Commit 37274538 authored by Jan Caron's avatar Jan Caron
Browse files

Changes to .gitlab-ci.yml

parent 338d4544
No related branches found
No related tags found
No related merge requests found
stages:
- test
before_script:
# Create SSH configuration directory if necessary (also parents with -p, mode: read/write/exec):
- mkdir -p --mode=700 ~/.ssh/
# Add SSH key for jutil:
- echo "$ID_RSA_JUTIL_PRIVATE" > ~/.ssh/id_rsa_jutil
# Configure SSH to use ~/.ssh/id_rsa_jutil for jugit.fz-juelich.de (-e allows \n):
- echo -e "Host jugit.fz-juelich.de\n\tIdentityFile ~/.ssh/id_rsa_jutil\n" > ~/.ssh/config
# Add jugit.fz-juelich.de to known_hosts (not the same key as Jutil!):
- echo jugit.fz-juelich.de, 134.94.130.31 "$ID_RSA_JUTIL_PUBLIC" > ~/.ssh/known_hosts
# Provide read access to owner (octal value code: 400) to jutil key and known_hosts with chmod:
- chmod 400 ~/.ssh/id_rsa_jutil
- chmod 400 ~/.ssh/known_hosts
# Install necessary apps like git and mesa-utils (needed for GL):
# TODO: Check if this is still needed after removing mayavi!?
- apt-get update
- apt-get install -y curl bzip2 git mesa-utils
test_miniconda:
stage: test
image: continuumio/miniconda3
script:
# Install requirements for pyramid:
- conda info --envs
- conda env create -q # -q: quiet/ no progressbar, because it spams the log!
- conda info --envs
- source activate pyramid
- conda info --envs
- conda uninstall mayavi vtk -y # TODO: necessary, because mayavi does not play nice with qt5!
- conda install pyqt=5 # TODO: This is needed for tests to run, but breaks mayavi (not used)!
# Install jutil via secure ssh connection:
- pip install git+ssh://gitlab@iffgit.fz-juelich.de/unger/jutil.git
# Execute tests:
- python setup.py test
# Create coverage report:
- coverage html
artifacts:
paths:
- htmlcov/
# Install jutil via deploy token access:
- pip install git+https://pyramid:"$JUTIL_DEPLOY_TOKEN"@jugit.fz-juelich.de/j.ungermann/jutil.git
test_conda_ubuntu:
stage: test
image: ubuntu:16.04
script:
# Install miniconda:
- curl -O -L https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
- chmod +x Miniconda3-latest-Linux-x86_64.sh
- ./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
- export PATH="/opt/miniconda3/bin:${PATH}"
# Install requirements for pyramid:
- conda info --envs
- conda env create -q # -q: quiet/ no progressbar, because it spams the log!
- conda info --envs
- source activate pyramid
- conda info --envs
- conda uninstall mayavi vtk -y # TODO: necessary, because mayavi does not play nice with qt5!
- conda install pyqt=5 # TODO: This is needed for tests to run, but breaks mayavi (not used)!
# Install jutil via secure ssh connection:
- pip install git+ssh://gitlab@iffgit.fz-juelich.de/unger/jutil.git
# Execute tests:
- python setup.py test
stages:
- test
- deploy # TODO: add stage later, upload docs, coverage and such, shift artifacts here?
test_pip_minimal:
stage: test
image: python:3.6
script:
# TODO: Different jobs with custom develop arguments? extra_requires (hyperspy, plotting)?
# TODO: Use pip install -e .[hyperspy], etc.
# Install requirements:
- pip install -e .['tests'] # TODO: other case with ['all']? After getting rid of mayavi...
# Install jutil via secure ssh connection:
- pip install git+ssh://gitlab@iffgit.fz-juelich.de/unger/jutil.git
# Execute tests:
- python setup.py test
test_style:
image: continuumio/miniconda3:latest
stage: test
script:
# -m: only run tests marked with "flake8"
- python setup.py test --addopts "--flake8 -m flake8"
test_pip_requirements:
stage: test
image: python:3.6
script:
# Install requirements:
- pip install -r requirements.txt # TODO: mayavi/pyfftw commented out by hand to make work!
# Install jutil via secure ssh connection:
- pip install git+ssh://gitlab@iffgit.fz-juelich.de/unger/jutil.git
# Execute tests:
- python setup.py test
test_function:
image: continuumio/miniconda3:latest
stage: test
artifacts:
paths:
- .coverage
expire_in: 1 week
script:
# Execute all tests and also check coverage with --cov:
- python setup.py test --addopts "--cov"
# TODO: What about windows? Better have one test (miniconda?) for windows/max/linux, each!
# TODO: Or use Dockers? What's the difference
# TODO: Instead of environment.yml (for development) use setup.py requirements for end user!
test_docs:
image: continuumio/miniconda3:latest
stage: test
script:
# -f: Force overwriting of any existing generated files.
# -e: Put documentation for each module on its own page.
# -o: Directory to place the output files. If it does not exist, it is created.
# last parameter: module path
- sphinx-apidoc -f -e -o docs/api pyramid
# Build the documentation from 'docs' and put into 'build/sphinx':
- sphinx-build docs build/sphinx
artifacts:
paths:
- build/sphinx
expire_in: 1 week
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment