Skip to content
Snippets Groups Projects
Commit 9d281678 authored by Tiago de Freitas Pereira's avatar Tiago de Freitas Pereira
Browse files

Changing gitlab ci script

parent c8d6a529
No related branches found
No related tags found
No related merge requests found
Pipeline #
# This build file is defined in two parts: 1) a generic set of instructions you # This build file heavily uses template features from YAML so it is generic
# probably **don't** need to change and 2) a part you may have to tune to your # enough for any Bob project. Don't modify it unless you know what you're
# project. It heavily uses template features from YAML to help you in only # doing.
# changing a minimal part of it and avoid code duplication to a maximum while
# still providing a nice pipeline display on your package.
# 1) Generic instructions (only change if you know what you're doing)
# -------------------------------------------------------------------
# Definition of our build pipeline # Definition of our build pipeline
stages: stages:
- build - build
- test - test
- docs - docs
- wheels - wheels
- deploy
# Global variables # ---------
variables: # Templates
CONDA_PREFIX: env # ---------
# Template for the build stage # Template for the build stage
# Needs to run on all supported architectures, platforms and python versions # Needs to run on all supported architectures, platforms and python versions
...@@ -27,103 +22,98 @@ variables: ...@@ -27,103 +22,98 @@ variables:
stage: build stage: build
before_script: before_script:
- git clean -ffdx - git clean -ffdx
- curl --silent https://gitlab.idiap.ch/bob/bob/snippets/7/raw | tr -d '\r' > bootstrap-conda.sh - mkdir _ci
- chmod 755 ./bootstrap-conda.sh - curl --silent "https://gitlab.idiap.ch/bob/bob.admin/raw/master/gitlab/install.sh" > _ci/install.sh
- ./bootstrap-conda.sh ${CONDA_FOLDER} ${PYTHON_VER} ${CONDA_PREFIX} - chmod 755 _ci/install.sh
variables: &build_variables - ./_ci/install.sh _ci #updates
BOB_DOCUMENTATION_SERVER: "http://www.idiap.ch/software/bob/docs/latest/bob/%s/master/" - ./_ci/before_build.sh
script: script:
- BOB_PREFIX_PATH=${CONDA_FOLDER}/envs/`cat ${CONDA_FOLDER}/envs/latest-devel-${PYTHON_VER}.txt` ./bin/buildout - ./_ci/build.sh
- ./bin/sphinx-build doc sphinx
- ./bin/python setup.py bdist_wheel
after_script: after_script:
- rm -rf ${CONDA_PREFIX} - ./_ci/after_build.sh
artifacts: artifacts:
expire_in: 1 day expire_in: 1 week
paths: paths:
- bootstrap-conda.sh - _ci/
- dist/ - dist/
- sphinx/ - sphinx/
# Template for building on a Linux machine # Template for the test stage - re-installs from uploaded wheels
.build_linux_template: &linux_build_job
<<: *build_job
variables: &linux_build_variables
<<: *build_variables
CONDA_FOLDER: "/local/conda"
CFLAGS: "-D_GLIBCXX_USE_CXX11_ABI=0 -coverage"
CXXFLAGS: "-D_GLIBCXX_USE_CXX11_ABI=0 -coverage"
# Template for building on a Mac OSX machine
.build_mac_template: &macosx_build_job
<<: *build_job
variables: &macosx_build_variables
<<: *build_variables
CONDA_FOLDER: "/opt/conda"
MACOSX_DEPLOYMENT_TARGET: "10.9"
CFLAGS: "-pthread -coverage"
CXXFLAGS: "-pthread -coverage"
LDFLAGS: "-lpthread"
# Template for the test stage - re-install from uploaded wheels
# Needs to run on all supported architectures, platforms and python versions # Needs to run on all supported architectures, platforms and python versions
.test_template: &test_job .test_template: &test_job
stage: test stage: test
before_script: before_script:
- ./bootstrap-conda.sh ${CONDA_FOLDER} ${PYTHON_VER} ${CONDA_PREFIX} - ./_ci/install.sh _ci #updates
- source ${CONDA_FOLDER}/bin/activate ${CONDA_PREFIX} - ./_ci/before_test.sh
- pip install --use-wheel --no-index --pre dist/*.whl
script: script:
- cd ${CONDA_PREFIX} - ./_ci/test.sh
- python -c "from ${CI_PROJECT_NAME} import get_config; print(get_config())"
- coverage run --source=${CI_PROJECT_NAME} ./bin/nosetests -sv ${CI_PROJECT_NAME}
- coverage report
- sphinx-build -b doctest ../doc ../sphinx
after_script: after_script:
- rm -rf ${CONDA_PREFIX} - ./_ci/after_test.sh
# Template for the wheel uploading stage # Template for the wheel uploading stage
# Needs to run against one combination of python 2.x and 3.x if it is a python # Needs to run against all combinations of python and operating systems
# only package, otherwise, needs to run in both pythons to all supported
# architectures (Linux and Mac OSX 64-bit)
.wheels_template: &wheels_job .wheels_template: &wheels_job
stage: wheels stage: wheels
environment: intranet
only: only:
- master - master
- tags - /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags)
before_script: before_script:
- curl --silent https://gitlab.idiap.ch/bob/bob/snippets/8/raw | tr -d '\r' > upload-wheel.sh - ./_ci/install.sh _ci #updates
- chmod 755 upload-wheel.sh - ./_ci/before_wheels.sh
script: script:
- ./upload-wheel.sh - ./_ci/wheels.sh
after_script:
- ./_ci/after_wheels.sh
# Template for (latest) documentation upload stage # Template for (latest) documentation upload stage
# Only one real job needs to do this # Only one real job needs to do this
.docs_template: &docs_job .docs_template: &docs_job
stage: docs stage: docs
environment: intranet
only: only:
- master - master
before_script: before_script:
- curl --silent https://gitlab.idiap.ch/bob/bob/snippets/9/raw | tr -d '\r' > upload-sphinx.sh - ./_ci/install.sh _ci #updates
- chmod 755 upload-sphinx.sh - ./_ci/before_docs.sh
script: script:
- ./upload-sphinx.sh - ./_ci/docs.sh
after_script:
- ./_ci/after_docs.sh
# 2) Package specific instructions (you may tune this if needed) # Template for the deployment stage - re-installs from uploaded wheels
# -------------------------------------------------------------- # Needs to run on a single architecture only
# Will deploy your package to PyPI and other required services
# Only runs for tags
.deploy_template: &deploy_job
stage: deploy
environment: internet
only:
- /^v\d+\.\d+\.\d+([abc]\d*)?$/ # PEP-440 compliant version (tags)
except:
- branches
before_script:
- ./_ci/install.sh _ci #updates
- ./_ci/before_deploy.sh
script:
- ./_ci/deploy.sh
after_script:
- ./_ci/after_deploy.sh
# Linux + Python 2.7: Builds and tests
# -------------
# Build Targets
# -------------
# Linux + Python 2.7: Builds, tests, uploads wheel and deploys (if needed)
build_linux_27: build_linux_27:
<<: *linux_build_job <<: *build_job
variables: &linux_27_build_variables variables: &linux_27_build_variables
<<: *linux_build_variables PYTHON_VERSION: "2.7"
PYTHON_VER: "2.7"
tags: tags:
- conda-linux - conda-linux
...@@ -137,6 +127,15 @@ test_linux_27: ...@@ -137,6 +127,15 @@ test_linux_27:
wheels_linux_27: wheels_linux_27:
<<: *wheels_job <<: *wheels_job
variables: *linux_27_build_variables
dependencies:
- build_linux_27
tags:
- conda-linux
deploy_linux_27:
<<: *deploy_job
variables: *linux_27_build_variables
dependencies: dependencies:
- build_linux_27 - build_linux_27
tags: tags:
...@@ -145,10 +144,9 @@ wheels_linux_27: ...@@ -145,10 +144,9 @@ wheels_linux_27:
# Linux + Python 3.4: Builds and tests # Linux + Python 3.4: Builds and tests
build_linux_34: build_linux_34:
<<: *linux_build_job <<: *build_job
variables: &linux_34_build_variables variables: &linux_34_build_variables
<<: *linux_build_variables PYTHON_VERSION: "3.4"
PYTHON_VER: "3.4"
tags: tags:
- conda-linux - conda-linux
...@@ -162,18 +160,18 @@ test_linux_34: ...@@ -162,18 +160,18 @@ test_linux_34:
wheels_linux_34: wheels_linux_34:
<<: *wheels_job <<: *wheels_job
variables: *linux_34_build_variables
dependencies: dependencies:
- build_linux_34 - build_linux_34
tags: tags:
- conda-linux - conda-linux
# Linux + Python 3.5: Builds and tests # Linux + Python 3.5: Builds, tests and uploads wheel
build_linux_35: build_linux_35:
<<: *linux_build_job <<: *build_job
variables: &linux_35_build_variables variables: &linux_35_build_variables
<<: *linux_build_variables PYTHON_VERSION: "3.5"
PYTHON_VER: "3.5"
tags: tags:
- conda-linux - conda-linux
...@@ -187,6 +185,7 @@ test_linux_35: ...@@ -187,6 +185,7 @@ test_linux_35:
wheels_linux_35: wheels_linux_35:
<<: *wheels_job <<: *wheels_job
variables: *linux_35_build_variables
dependencies: dependencies:
- build_linux_35 - build_linux_35
tags: tags:
...@@ -194,18 +193,18 @@ wheels_linux_35: ...@@ -194,18 +193,18 @@ wheels_linux_35:
docs_linux_35: docs_linux_35:
<<: *docs_job <<: *docs_job
variables: *linux_35_build_variables
dependencies: dependencies:
- build_linux_35 - build_linux_35
tags: tags:
- conda-linux - conda-linux
# Mac OSX + Python 2.7: Builds, tests and uploads the wheel # Mac OSX + Python 2.7: Builds and tests
build_macosx_27: build_macosx_27:
<<: *macosx_build_job <<: *build_job
variables: &macosx_27_build_variables variables: &macosx_27_build_variables
<<: *macosx_build_variables PYTHON_VERSION: "2.7"
PYTHON_VER: "2.7"
tags: tags:
- conda-macosx - conda-macosx
...@@ -219,6 +218,7 @@ test_macosx_27: ...@@ -219,6 +218,7 @@ test_macosx_27:
wheels_macosx_27: wheels_macosx_27:
<<: *wheels_job <<: *wheels_job
variables: *macosx_27_build_variables
dependencies: dependencies:
- build_macosx_27 - build_macosx_27
tags: tags:
...@@ -227,10 +227,9 @@ wheels_macosx_27: ...@@ -227,10 +227,9 @@ wheels_macosx_27:
# Mac OSX + Python 3.4: Builds and tests # Mac OSX + Python 3.4: Builds and tests
build_macosx_34: build_macosx_34:
<<: *macosx_build_job <<: *build_job
variables: &macosx_34_build_variables variables: &macosx_34_build_variables
<<: *macosx_build_variables PYTHON_VERSION: "3.4"
PYTHON_VER: "3.4"
tags: tags:
- conda-macosx - conda-macosx
...@@ -244,18 +243,18 @@ test_macosx_34: ...@@ -244,18 +243,18 @@ test_macosx_34:
wheels_macosx_34: wheels_macosx_34:
<<: *wheels_job <<: *wheels_job
variables: *macosx_34_build_variables
dependencies: dependencies:
- build_macosx_34 - build_macosx_34
tags: tags:
- conda-macosx - conda-macosx
# Mac OSX + Python 3.5: Builds, tests, uploads the wheel and the latest docs # Mac OSX + Python 3.5: Builds and tests
build_macosx_35: build_macosx_35:
<<: *macosx_build_job <<: *build_job
variables: &macosx_35_build_variables variables: &macosx_35_build_variables
<<: *macosx_build_variables PYTHON_VERSION: "3.5"
PYTHON_VER: "3.5"
tags: tags:
- conda-macosx - conda-macosx
...@@ -269,7 +268,8 @@ test_macosx_35: ...@@ -269,7 +268,8 @@ test_macosx_35:
wheels_macosx_35: wheels_macosx_35:
<<: *wheels_job <<: *wheels_job
variables: *macosx_35_build_variables
dependencies: dependencies:
- build_macosx_35 - build_macosx_35
tags: tags:
- conda-macosx - conda-macosx
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
.. image:: http://img.shields.io/badge/docs-stable-yellow.png .. image:: http://img.shields.io/badge/docs-stable-yellow.png
:target: http://pythonhosted.org/bob.ap/index.html :target: http://pythonhosted.org/bob.ap/index.html
.. image:: http://img.shields.io/badge/docs-latest-orange.png .. image:: http://img.shields.io/badge/docs-latest-orange.png
:target: https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.ap/master/index.html :target: https://www.idiap.ch/software/bob/docs/latest/bob/bob.ap/master/index.html
.. image:: https://gitlab.idiap.ch/bob/bob.ap/badges/master/build.svg .. image:: https://gitlab.idiap.ch/bob/bob.ap/badges/master/build.svg
:target: https://gitlab.idiap.ch/bob/bob.ap/commits/master :target: https://gitlab.idiap.ch/bob/bob.ap/commits/master
.. image:: https://img.shields.io/badge/gitlab-project-0000c0.svg .. image:: https://img.shields.io/badge/gitlab-project-0000c0.svg
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment