I'm really interested in the gitlab-ci part of this -- can you describe? Do you think it will translate to travis on github? I'd prefer to continue using github if I can since there's so much infrastructure there, and I tend to use the web interface in my teaching. 

I hadn't even heard of guix, it looks intriguing, thanks. 

On Tue, Jan 24, 2017 at 4:19 AM, Rasmus <rasmus@gmx.us> wrote:
Matt Price <moptop99@gmail.com> writes:

> I'd like to provide a way for people to copy my course materials in the
> easiest possible way. At present my export & grading processes rely on some
> customization of various tools, mostly emacs-based. So I'm thinking the
> easiest thing might be fore me to define a virtual machine, maybe
> docker-based, and distribute that.

Docker might be handy if you need a whole array of tools, say R, Org, a
number of libraries etc etc.  It's not too complicated to created new
docker images and you can host/compile them on "dockerhub".  You can find
the files that create docker images on e.g. github.

Personally, I use an external config.el file to publish files against the
ELPA version of Org.

Something like,

    emacs --batch --no-init-file --load paper-config/org-conf.el --find-file $1 --funcall $2

In addition, I compile the papers with gitlab-ci.  You can include
instructions of what software is needed in the .gitlab-ci.yml.

You might also be able to use something like Guix.  I think it can even be
used to create docker images these days.

Hope it helps,
Rasmus

--
History is what should never happen again