# Travis-based LaTeX + Weave Demo

**URL:** <https://discourse.julialang.org/t/travis-based-latex-weave-demo/24812>\
**Category:** Tooling\
**Tags:** jupyter, latex\
**Created:** [May 31, 2019, 8:24pm UTC](https://discourse.julialang.org/t/travis-based-latex-weave-demo/24812 "2019-05-31T20:24:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![arnavsood](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/arnavsood/32/4675_2.png) [@arnavsood](https://discourse.julialang.org/u/arnavsood)\
**Post date:** [May 31, 2019, 8:24pm UTC](https://discourse.julialang.org/t/travis-based-latex-weave-demo/24812/1 "2019-05-31T20:24:40Z")

</div>

One problem I encountered over the past year was keeping track of compiled output (i.e., TeX PDFs and Jupyter notebooks) in my Julia project repositories. There are a few solutions, but we (me and @jlperla) found Travis CI to be easiest. I uploaded a minimal example at [https://github.com/arnavs/test-tectonic](https://github.com/arnavs/test-tectonic).

It will use the `tectonic` docker image to compile all source in `docs/tex/`, and use a dedicated `quantecon/julia-weave` image to create notebooks from `docs/notebooks/`.

Vanilla commits (non-tag) will upload files to a release called `dev` (which is overwritten when we push new things.) And release builds will upload to that release, just like `BinaryBuilder.jl`.

To set this up, all someone needs to do is three things:

1. Set up Travis on their repository with a GitHub access token (we call the variable `GITHUB_API_KEY`.)

2. Copy/paste the relevant bit of `.travis.yml` (or the whole thing, if you’re fine testing the actual Julia code on 1.1/Linux.) If you want to set up a build matrix, just add an `on: ` condition to the `deploy:` bit, telling Travis which build to deploy from.

3. Set up the relevant directory structure (so `docs/tex` for your tex, `docs/notebooks` for your notebooks, and then each one should include a script you can copy/paste from the repo above.)
