Skip to content
Snippets Groups Projects
Forked from FSL / fslpy
1637 commits behind the upstream repository.
.gitlab-ci.yml 6.52 KiB
#############################################################################
# This file defines the build process for fslpy, as hosted at:
#
#    https://git.fmrib.ox.ac.uk/fsl/fslpy
#
# The build pipeline comprises the following stages:
#
#    1. test:   Unit tests
#
#    2. style:  Check coding style
#
#    3. doc:    Building API documentation
#
#    4. build:  Building source, wheel and conda distributions
#
#    5. deploy: Uploading the build outputs to pypi/hosting servers, and the
#               documentation to a hosting server.
#
# Custom docker images are used for several jobs - these images are
# available at:
#
#    https://hub.docker.com/u/pauldmccarthy/
#
# The test and style stages are executed on all branches of upstream and fork
# repositories.
#
# The doc stage, and the deploy-doc job, is executed on all branches of the
# upstream repository.
#
# The build stage, and the remaining jobs in the deploy stage, are only
# executed on the upstream repository, and only for release tags.
#
# The deploy stages are manually instantiated.
#
# Most of the logic for each job is defined in shell scripts in the .ci
# sub-directory.
#############################################################################


stages:
 - test
 - style
 - doc
 - build
 - deploy


#################################################################################
# A number of variables must be set for the jobs to work. The following
# variables are implicitly defined in any gitlab CI job:
#
#   - CI_PROJECT_PATH    - gitlab namespace/project
#   - CI_COMMIT_REF_NAME - branch name, provided by gitlab
#   - CI_COMMIT_TAG      - present if build is running on a tag
#
# These variables must be explicitly set as "secret" variables:
#
#   - SSH_PRIVATE_KEY_GIT            - private key for git login to remote host
#                                      (UPSTREAM_URL)
#
#   - SSH_PRIVATE_KEY_FSL_DOWNLOAD   - private key for downloading some FSL
#                                      files from a remote server (FSL_HOST)
#
#   - SSH_PRIVATE_KEY_DOC_DEPLOY     - private key for rsyncing documentation
#                                      to remote host (DOC_HOST)
#
#   - SSH_PRIVATE_KEY_CONDA_DEPLOY   - private key for rsyncing conda builds
#                                      to remote host (CONDA_HOST)
#
#   - SSH_PRIVATE_KEY_CONDA_INDEX    - private key for updating conda channel