Skip to content
Snippets Groups Projects
Forked from FSL / fslpy
1109 commits behind the upstream repository.
.gitlab-ci.yml 6.16 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 and wheel 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_SERVER_HOSTKEYS            - List of trusted SSH hosts
#
#   - DOC_HOST:                      - Username@host to upload documentation to
#                                      (e.g. "paulmc@jalapeno.fmrib.ox.ac.uk")