Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
FSL
conda
manifest
Commits
1224ec09
Commit
1224ec09
authored
Jul 30, 2021
by
Paul McCarthy
🚵
Browse files
MNT: remove gitlab-ci, update readme
parent
d2c51e10
Changes
2
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
deleted
100644 → 0
View file @
d2c51e10
# CI / CD for the fsl/conda/manifest project
#
# The fsl/conda/manifest project is used to manage
# internal and public FSL releases. The FSL release
# manifest and environment files are generated
# whenever changes are made to this project.
#
# The scripts used to generate and test files files
# are contained in the fsl/conda/manifest-rules
# project. All jobs are executed in an environment
# in which conda is available.
default
:
before_script
:
-
conda create -c conda-forge -p ./env python=3.9
-
source activate ./env
-
python -m pip install git+https://git.fmrib.ox.ac.uk/fsl/conda/manifest-rules.git
# Don't run pipeline on merge requests
workflow
:
rules
:
-
if
:
'
$CI_COMMIT_TAG
!=
null
||
$CI_COMMIT_BRANCH
!=
null'
# Manifest and environment files can only be published
# from tags, or from these branches. Attempts to run a
# publish job from a different branch will fail.
# Additionally, the test stages will only perform a
# full test on these branches - a fast test is
# performed on other branches. See these files for more
# details:
#
# - fsl/conda/manifest-rules:manifest_rules/test_environment.py
# - fsl/conda/manifest-rules:manifest_rules/deploy_files.py
variables
:
PUBLISH_FROM_BRANCHES
:
"
master
internal"
stages
:
# Generate FSL conda environment specification
# files for all platforms and CUDA versions
-
generate-environment-files
# Do a test installation for all environment
# files, and calculate the number of expected
# output lines so that the fslinstaller
# script can report progress to the user.
-
test-environments
# Generate release or development manifest.json
# files
-
generate-manifest-files
# Run the fslinstaller.py script against
# the generated manifest files
-
test-manifests
# Publish the manifest and/or environment files.
# All jobs in this stage must be manually triggered.
-
publish
# Generate FSL conda environment.yml files, for
# all supported platforms and CUDA versions,
# from fsl-release.yml. Refer to the
# manifest_rules//generate_environment_files.py
# script for details.
generate-environment-files
:
stage
:
generate-environment-files
image
:
continuumio/miniconda3
tags
:
-
fsl-ci
-
docker
script
:
-
generate_environment_files fsl-release.yml ./environments
artifacts
:
expire_in
:
2 hrs
paths
:
-
environments
# Do a test install of all environment files on
# all platforms. Information about the
# installation of each environment file is saved
# to test_install/<environment_file>.install.txt.
# The macos-64 test job is run on a macOS shell
# runner - it is assumed that that conda is
# installed in the environment.
# This is a template. Concrete test jobs (below)
# specify a SUFFIX variable, denoting the
# environment file to test.
.test-environments
:
stage
:
test-environments
dependencies
:
-
generate-environment-files
# tags and image is overridden by the macOS job
tags
:
-
fsl-ci
-
docker
script
:
-
mkdir ./test_environments
-
test_environment ./fsl-release.yml ./environments/*${SUFFIX}.yml 2>&1 | tee test_environments/${SUFFIX}.install.txt
artifacts
:
expire_in
:
2 hrs
when
:
always
paths
:
-
test_environments
test-environment:macos-64:
extends
:
.test-environments
tags
:
-
fsl-ci
-
macOS
variables
:
SUFFIX
:
"
macos-64"
test-environment:linux-64:
extends
:
.test-environments
image
:
fsldevelopment/fsl-linux-64
variables
:
SUFFIX
:
"
linux-64"
test-environment:linux-64_cudaX.Y:
extends
:
.test-environments
image
:
fsldevelopment/fsl-linux-64
parallel
:
matrix
:
-
CUDA
:
[
"
9.2"
,
"
10.2"
,
"
11.0"
]
variables
:
SUFFIX
:
"
linux-64_cuda${CUDA}"
# Generate release manifest files. Both release
# and development manifest files are generated
# on every commit, but as the deploy jobs must
# be manually invoked, the user can choose which
# one they want to publish.
.generate-manifest-file
:
stage
:
generate-manifest-files
image
:
continuumio/miniconda3
tags
:
-
fsl-ci
-
docker
dependencies
:
-
generate-environment-files
-
test-environment:linux-64
-
test-environment:macos-64
-
test-environment:linux-64_cudaX.Y
script
:
-
mkdir -p ./manifest
-
generate_manifest_file ./fsl-release.yml "$OFFICIAL" ./manifest ./environments ./test_environments
artifacts
:
expire_in
:
2 hrs
paths
:
-
manifest
generate-release-manifest-file
:
extends
:
.generate-manifest-file
variables
:
OFFICIAL
:
"
true"
generate-development-manifest-file
:
extends
:
.generate-manifest-file
variables
:
OFFICIAL
:
"
false"
# Run the latest fslinstaller.py script
# on the generated manifest and environment
# files.
#
# This is a template. Each concrete job
# specifies a variable SUFFIX which denotes
# the environment file to be installed.
.test-manifest
:
stage
:
test-manifests
script
:
# there should only be one manifest file, so
# manifest/*.json will resolve to a single
# file. Concrete jobs should define SUFFIX
# so that environments/*${SUFFIX}.yml should
# also resolve to one file.
-
test_manifest manifest/*.json environments/*${SUFFIX}.yml
test-release-manifest:linux-64:
stage
:
test-manifests
extends
:
.test-manifest
image
:
fsldevelopment/fsl-linux-64
variables
:
SUFFIX
:
"
linux-64"
tags
:
-
fsl-ci
-
docker
dependencies
:
-
generate-environment-files
-
generate-release-manifest-file
test-development-manifest:linux-64:
stage
:
test-manifests
extends
:
.test-manifest
image
:
fsldevelopment/fsl-linux-64
variables
:
SUFFIX
:
"
linux-64"
tags
:
-
fsl-ci
-
docker
dependencies
:
-
generate-environment-files
-
generate-development-manifest-file
test-release-manifest:linux-64_cudaX.Y:
stage
:
test-manifests
extends
:
.test-manifest
image
:
fsldevelopment/fsl-linux-64
parallel
:
matrix
:
-
CUDA
:
[
"
9.2"
,
"
10.2"
,
"
11.0"
]
variables
:
SUFFIX
:
"
linux-64_cuda$CUDA"
tags
:
-
fsl-ci
-
docker
dependencies
:
-
generate-environment-files
-
generate-release-manifest-file
test-development-manifest:linux-64_cudaX.Y:
stage
:
test-manifests
extends
:
.test-manifest
image
:
fsldevelopment/fsl-linux-64
parallel
:
matrix
:
-
CUDA
:
[
"
9.2"
,
"
10.2"
,
"
11.0"
]
variables
:
SUFFIX
:
"
linux-64_cuda${CUDA}"
tags
:
-
fsl-ci
-
docker
dependencies
:
-
generate-environment-files
-
generate-development-manifest-file
test-release-manifest:macos-64:
stage
:
test-manifests
extends
:
.test-manifest
variables
:
SUFFIX
:
"
macos-64"
tags
:
-
fsl-ci
-
macOS
dependencies
:
-
generate-environment-files
-
generate-release-manifest-file
test-development-manifest:macos-64:
stage
:
test-manifests
extends
:
.test-manifest
variables
:
SUFFIX
:
"
macos-64"
tags
:
-
fsl-ci
-
macOS
dependencies
:
-
generate-environment-files
-
generate-development-manifest-file
# Deploy/publish environment and manifest files.
# All deploy jobs must be manually invoked.
# Deployment destination is assumed to be
# available as a mount point at /releases/
.deploy-job-template
:
stage
:
publish
image
:
continuumio/miniconda3
tags
:
-
fsl-ci
-
fslconda-channel-host
when
:
manual
deploy-environment-files
:
extends
:
.deploy-job-template
dependencies
:
-
generate-environment-files
script
:
-
deploy_files /releases/ ./environments/*.yml
deploy-development-manifest
:
extends
:
.deploy-job-template
dependencies
:
-
generate-development-manifest-file
script
:
-
deploy_files /releases/ ./manifest/*.json
deploy-release-manifest
:
extends
:
.deploy-job-template
dependencies
:
-
generate-release-manifest-file
script
:
-
deploy_files /releases/ ./manifest/*.json
README.md
View file @
1224ec09
...
...
@@ -2,10 +2,11 @@
This repository is used to manage FSL releases. The
`fsl-release.yml`
file
defines the packages that are installed as part of a FSL release. FSL release
`manifest.json`
and
`environment.yml`
files are automatically generated from
information stored in this repository, using scripts in the
fsl/conda/manifest-rules> repository.
defines the packages that are installed as part of a FSL release.
FSL release
`manifest.json`
and
`environment.yml`
files are automatically
generated from information stored in this repository, using CI rules and
scripts in the fsl/conda/manifest-rules> repository.
## The `fslinstaller.py` script
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment