-
Notifications
You must be signed in to change notification settings - Fork 10
/
config.yml
101 lines (89 loc) · 3.25 KB
/
config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2.1
orbs:
singularity: singularity/singularity@1.0.4
workflows:
version: 2
example:
jobs:
- build:
filters:
branches:
ignore: master
name: "Singularity 3.2.1 - Python 3"
singularity: 3.2.1
singularity-3: true
jobs:
build:
parameters:
singularity:
type: string
description: "Singularity version"
singularity-3:
type: boolean
description: "Set to true for singularity 3, false for singularity 2"
default: true
machine: true
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v2-dependencies
- run:
name: install dependencies
command: |
ls $HOME
if [ ! -d "/home/circleci/conda" ]; then
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
/bin/bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/conda
export PATH=$HOME/conda/bin:$PATH
conda install -y -c defaults -c conda-forge sregistry
else
echo "Miniconda is already installed, continuing to build."
fi
chmod u+x ~/repo/.circleci/*.sh
# Install Singularity
- when:
condition: << parameters.singularity-3 >>
steps:
- singularity/install-go:
go-version: 1.11.5
- singularity/debian-install-3:
singularity-version: << parameters.singularity >>
- unless:
condition: << parameters.singularity-3 >>
steps:
- singularity/debian-install-2:
singularity-version: << parameters.singularity >>
- save_cache:
paths:
- /home/circleci/conda
key: v2-dependencies
- run:
name: build container
command: |
cd ~/repo
export PATH=$PATH:/opt/circleci/.pyenv/shims
/bin/bash ~/repo/.circleci/build.sh Singularity
mkdir -p build && cp *.sif build
mkdir -p build && cp Singularity* build
# build the container!
# You can add any other sregistry push commands here, and specify a client
# (and make sure your define the encrypted environment credentials in circle ci
# to push to your storage locations of choice
# Examples with upload to storage clients defined by sregistry
# https://singularityhub.github.io/sregistry-cli/clients
# Environment variables must be defined in CI encrypted secrets/settings
# https://circleci.com/docs/2.0/env-vars/
#- /bin/bash build.sh --uri collection/container --cli google-storage Singularity
#- /bin/bash build.sh --uri collection/container --cli google-drive Singularity
#- /bin/bash build.sh --uri collection/container --cli globus Singularity
#- /bin/bash build.sh --uri collection/container --cli registry Singularity
- store_artifacts:
path: ~/repo/build
destination: singularity-containers