-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[INFRA] test docker builds in CI #487
Conversation
Will update this message as more builds finish. Some additional notes and conclusions:
centos:8
ants
make[2]: *** [CMakeFiles/ITKv5.dir/build.make:98: ITKv5-prefix/src/ITKv5-stamp/ITKv5-download] Error 1
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/ITKv5.dir/all] Error 2
make: *** [Makefile:121: all] Error 2 MRrtix
CAT12does it require matlab MCR 2017b? freesurfer
fsl
afni
spm12
matlab MCRGetting this error with the oldest version of the MCR (BTW why is this antique version still supported?) 2010a errorTraceback (most recent call last):
File "/home/runner/work/neurodocker/neurodocker/neurodocker/reproenv/renderers.py", line 77, in _render_string_from_template
source = tmpl.render(template=template)
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/jinja2/environment.py", line 1301, in render
self.environment.handle_exception()
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/jinja2/environment.py", line 936, in handle_exception
raise rewrite_traceback_stack(source=source)
File "<template>", line 2, in top-level template code
jinja2.exceptions.UndefinedError: 'dict object' has no attribute '2010a'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.10.9/x64/bin/neurodocker", line 33, in <module>
sys.exit(load_entry_point('neurodocker', 'console_scripts', 'neurodocker')())
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/opt/hostedtoolcache/Python/3.10.9/x64/lib/python3.10/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/runner/work/neurodocker/neurodocker/neurodocker/cli/generate.py", line 431, in docker
_base_generate(
File "/home/runner/work/neurodocker/neurodocker/neurodocker/cli/generate.py", line 408, in _base_generate
r = renderer.from_dict(renderer_dict)
File "/home/runner/work/neurodocker/neurodocker/neurodocker/reproenv/renderers.py", line 213, in from_dict
renderer.add_registered_template(method_or_template, **kwds)
File "/home/runner/work/neurodocker/neurodocker/neurodocker/reproenv/renderers.py", line 366, in add_registered_template
self.add_template(template=template, method=method)
File "/home/runner/work/neurodocker/neurodocker/neurodocker/reproenv/renderers.py", line 278, in add_template
d: ty.Mapping[str, str] = {
File "/home/runner/work/neurodocker/neurodocker/neurodocker/reproenv/renderers.py", line 281, in <dictcomp>
): _render_string_from_template(v, template_method)
File "/home/runner/work/neurodocker/neurodocker/neurodocker/reproenv/renderers.py", line 79, in _render_string_from_template
raise RendererError(err) from e
neurodocker.reproenv.exceptions.RendererError: A template included in this renderer raised an error. Please check the template definition. A required argument might not be included in the required arguments part of the template. Variables in the template should start with `self.`. |
.github/workflows/bootstrap.yml
Outdated
# requires a token with repo and workflow permissions | ||
with: | ||
token: ${{ secrets.BOOTSTRAP }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Running this will require setting up a token
|
||
template_folder = Path(__file__).parents[2].joinpath("neurodocker", "templates") | ||
|
||
build_dashboard_file = Path(__file__).parents[2].joinpath("docs", "README.md") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dashboard is added to the docs folder and rendered with github pages.
That means that to make test this I had to nuke the .nojekyll
file that was in there.
OK I think that all of this is now implemented with the latest commits:
Note that:
|
@Remi-Gau - could i bother you to run a black update on this branch :) |
Music to my ears. |
closes #481
aim
This PR aims to provide a CI workflow to evaluate what docker build will actually succeed for "some" versions of "some" of the main software that neurodocker supports.
changes
The PR adds:
docs/README.md
) to be rendered with github pagesexplanation
the template + script allow to test:
all of those are defined in a python dictionary.
each workflow:
cat
the dockerfileother
This PR also adds a dashboard to let users know what are the builds that are valid.