Skip to content

Commit a0bcc03

Browse files
authored
Merge pull request #7 from singularityhub/add/circle
adding circle testing
2 parents ec3e8fd + 4f49f37 commit a0bcc03

27 files changed

+1279
-15
lines changed

.circleci/config.yml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
version: 2.1
2+
3+
orbs:
4+
singularity: singularity/[email protected]
5+
6+
7+
################################################################################
8+
# Workflows
9+
################################################################################
10+
11+
12+
workflows:
13+
version: 2
14+
test:
15+
jobs:
16+
- run-scompose-ci-tests: &base_job
17+
filters:
18+
branches:
19+
ignore: master
20+
name: "Latest Singularity with Python 3"
21+
run-linter: true
22+
python: 3
23+
singularity: 3.2.1
24+
singularity-3: true
25+
26+
################################################################################
27+
# Functions
28+
################################################################################
29+
30+
run_linter: &run_linter
31+
name: run linter
32+
command: pylint ~/repo/scompose
33+
34+
install_scompose: &install_scompose
35+
name: Install Singularity Compose
36+
command: |
37+
cd ~/repo
38+
pip install .[all]
39+
40+
test_scompose: &test_scompose
41+
name: Test Singularity Compose
42+
command: |
43+
cd ~/repo
44+
pip install .[all]
45+
pytest scompose
46+
47+
commands:
48+
install_dependencies:
49+
parameters:
50+
python:
51+
type: integer
52+
description: "Python version: 2 or 3"
53+
steps:
54+
- run: |
55+
PYTHON_VERSION="<< parameters.python >>"
56+
CONDA_PATH="$HOME/conda/Python${PYTHON_VERSION}"
57+
echo 'export PATH="'"$CONDA_PATH"'/bin:$PATH"' >> "$BASH_ENV"
58+
source "$BASH_ENV"
59+
if [ ! -d "$CONDA_PATH" ]; then
60+
CONDA_SCRIPT=Miniconda${PYTHON_VERSION}-latest-Linux-x86_64.sh
61+
wget https://repo.anaconda.com/miniconda/$CONDA_SCRIPT
62+
/bin/bash $CONDA_SCRIPT -b -p $CONDA_PATH
63+
else
64+
echo "Miniconda is already installed, continuing to build."
65+
fi
66+
python --version
67+
[ $(python -c'import sys;print(sys.version_info.major)') -eq $PYTHON_VERSION ]
68+
69+
pip install --upgrade pylint pytest setuptools
70+
71+
################################################################################
72+
# Jobs
73+
################################################################################
74+
75+
jobs:
76+
run-scompose-ci-tests:
77+
parameters:
78+
run-linter:
79+
type: boolean
80+
default: false
81+
python:
82+
type: integer
83+
description: "Python version: 2 or 3"
84+
default: 3
85+
singularity:
86+
type: string
87+
description: "Singularity version"
88+
singularity-3:
89+
type: boolean
90+
description: "Set to true for singularity 3, false for singularity 2"
91+
default: true
92+
machine: true
93+
working_directory: ~/repo
94+
steps:
95+
- checkout
96+
- restore_cache:
97+
keys: v1-dependencies
98+
- install_dependencies:
99+
python: << parameters.python >>
100+
- when:
101+
condition: << parameters.singularity-3 >>
102+
steps:
103+
- singularity/install-go:
104+
go-version: 1.11.5
105+
- singularity/debian-install-3:
106+
singularity-version: << parameters.singularity >>
107+
- save_cache:
108+
paths:
109+
- ~/conda
110+
key: v1-dependencies
111+
- run: *install_scompose
112+
- when:
113+
condition: << parameters.run-linter >>
114+
steps:
115+
- run: *run_linter
116+
- run: *test_scompose

.docs/Makefile

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
# Makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
PAPER =
8+
BUILDDIR = _build
9+
10+
# Internal variables.
11+
PAPEROPT_a4 = -D latex_paper_size=a4
12+
PAPEROPT_letter = -D latex_paper_size=letter
13+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14+
# the i18n builder cannot share the environment and doctrees with the others
15+
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
16+
17+
.PHONY: help
18+
help:
19+
@echo "Please use \`make <target>' where <target> is one of"
20+
@echo " html to make standalone HTML files"
21+
@echo " dirhtml to make HTML files named index.html in directories"
22+
@echo " singlehtml to make a single large HTML file"
23+
@echo " pickle to make pickle files"
24+
@echo " json to make JSON files"
25+
@echo " htmlhelp to make HTML files and a HTML help project"
26+
@echo " qthelp to make HTML files and a qthelp project"
27+
@echo " applehelp to make an Apple Help Book"
28+
@echo " devhelp to make HTML files and a Devhelp project"
29+
@echo " epub to make an epub"
30+
@echo " epub3 to make an epub3"
31+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
32+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
33+
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
34+
@echo " text to make text files"
35+
@echo " man to make manual pages"
36+
@echo " texinfo to make Texinfo files"
37+
@echo " info to make Texinfo files and run them through makeinfo"
38+
@echo " gettext to make PO message catalogs"
39+
@echo " changes to make an overview of all changed/added/deprecated items"
40+
@echo " xml to make Docutils-native XML files"
41+
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
42+
@echo " linkcheck to check all external links for integrity"
43+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
44+
@echo " coverage to run coverage check of the documentation (if enabled)"
45+
@echo " dummy to check syntax errors of document sources"
46+
47+
.PHONY: clean
48+
clean:
49+
rm -rf $(BUILDDIR)/*
50+
51+
.PHONY: html
52+
html:
53+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
54+
@echo
55+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
56+
57+
.PHONY: dirhtml
58+
dirhtml:
59+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
60+
@echo
61+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
62+
63+
.PHONY: singlehtml
64+
singlehtml:
65+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
66+
@echo
67+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
68+
69+
.PHONY: pickle
70+
pickle:
71+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
72+
@echo
73+
@echo "Build finished; now you can process the pickle files."
74+
75+
.PHONY: json
76+
json:
77+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
78+
@echo
79+
@echo "Build finished; now you can process the JSON files."
80+
81+
.PHONY: htmlhelp
82+
htmlhelp:
83+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
84+
@echo
85+
@echo "Build finished; now you can run HTML Help Workshop with the" \
86+
".hhp project file in $(BUILDDIR)/htmlhelp."
87+
88+
.PHONY: qthelp
89+
qthelp:
90+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
91+
@echo
92+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
93+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
94+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SingularityPythonAPI.qhcp"
95+
@echo "To view the help file:"
96+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SingularityPythonAPI.qhc"
97+
98+
.PHONY: applehelp
99+
applehelp:
100+
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
101+
@echo
102+
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
103+
@echo "N.B. You won't be able to view it unless you put it in" \
104+
"~/Library/Documentation/Help or install it in your application" \
105+
"bundle."
106+
107+
.PHONY: devhelp
108+
devhelp:
109+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
110+
@echo
111+
@echo "Build finished."
112+
@echo "To view the help file:"
113+
@echo "# mkdir -p $$HOME/.local/share/devhelp/SingularityPythonAPI"
114+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SingularityPythonAPI"
115+
@echo "# devhelp"
116+
117+
.PHONY: epub
118+
epub:
119+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
120+
@echo
121+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
122+
123+
.PHONY: epub3
124+
epub3:
125+
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
126+
@echo
127+
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
128+
129+
.PHONY: latex
130+
latex:
131+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
132+
@echo
133+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
134+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
135+
"(use \`make latexpdf' here to do that automatically)."
136+
137+
.PHONY: latexpdf
138+
latexpdf:
139+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
140+
@echo "Running LaTeX files through pdflatex..."
141+
$(MAKE) -C $(BUILDDIR)/latex all-pdf
142+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
143+
144+
.PHONY: latexpdfja
145+
latexpdfja:
146+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
147+
@echo "Running LaTeX files through platex and dvipdfmx..."
148+
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
149+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
150+
151+
.PHONY: text
152+
text:
153+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
154+
@echo
155+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
156+
157+
.PHONY: man
158+
man:
159+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
160+
@echo
161+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
162+
163+
.PHONY: texinfo
164+
texinfo:
165+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
166+
@echo
167+
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
168+
@echo "Run \`make' in that directory to run these through makeinfo" \
169+
"(use \`make info' here to do that automatically)."
170+
171+
.PHONY: info
172+
info:
173+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
174+
@echo "Running Texinfo files through makeinfo..."
175+
make -C $(BUILDDIR)/texinfo info
176+
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
177+
178+
.PHONY: gettext
179+
gettext:
180+
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
181+
@echo
182+
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
183+
184+
.PHONY: changes
185+
changes:
186+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
187+
@echo
188+
@echo "The overview file is in $(BUILDDIR)/changes."
189+
190+
.PHONY: linkcheck
191+
linkcheck:
192+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
193+
@echo
194+
@echo "Link check complete; look for any errors in the above output " \
195+
"or in $(BUILDDIR)/linkcheck/output.txt."
196+
197+
.PHONY: doctest
198+
doctest:
199+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
200+
@echo "Testing of doctests in the sources finished, look at the " \
201+
"results in $(BUILDDIR)/doctest/output.txt."
202+
203+
.PHONY: coverage
204+
coverage:
205+
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
206+
@echo "Testing of coverage in the sources finished, look at the " \
207+
"results in $(BUILDDIR)/coverage/python.txt."
208+
209+
.PHONY: xml
210+
xml:
211+
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
212+
@echo
213+
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
214+
215+
.PHONY: pseudoxml
216+
pseudoxml:
217+
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
218+
@echo
219+
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
220+
221+
.PHONY: dummy
222+
dummy:
223+
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
224+
@echo
225+
@echo "Build finished. Dummy builder generates no files."

.docs/apidoc.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
# If the modules changed, the content of "source" should be backed up and
3+
# new files generated (to update) by doing:
4+
#
5+
# sphinx-apidoc -o source/ ../scompose
6+
7+
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8+
BASE=$(dirname $HERE)
9+
cd $HERE
10+
cd $BASE && python setup.py install && cd $HERE && make html
11+
rm -rf $BASE/docs/api
12+
13+
# Create new folders
14+
mkdir -p $BASE/docs/api
15+
16+
# Rename folders
17+
find $HERE/_build/html -exec sed -i -e 's/_static/assets/g' {} \;
18+
find $HERE/_build/html -exec sed -i -e 's/_modules/modules/g' {} \;
19+
20+
# Copy to new locations
21+
mv $HERE/_build/html/_static $BASE/docs/api/assets
22+
mv $HERE/_build/html/_modules $BASE/docs/api/modules
23+
cp -R $HERE/_build/html/* $BASE/docs/api

.docs/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../CHANGELOG.md

0 commit comments

Comments
 (0)