Setting up Travis
Its always fun to learn and implement new technologies. Travis-CI a FOSS for continuous integration and deployment, is one such tool I always wanted to learn. Finally, today, I did get some motivation to get started with Travis to auto build and deploy a paper I am currently writing in LaTex.
Run the following commands to install and setup Travis-cli which will
help auto-generation of configuration file
.travis.yml. This file can
also be created without the tool, auto generation always makes life
curl -sSL https://get.rvm.io | bash -s stable --ruby source /$HOME/.rvm/scripts/rvm gem install travis
Setup Github and Travis
Goto settings on the Github repository, Choose webhooks and services > Add service and select Travis-CI. This will allow travis to start building when a commit has been pushed.
Also, make sure the repository is enabled within the Travis webpage. on the travis home page, you can toggle required repositories for building.
Generate and configure
.travis.yml is a configuration file that defines the build process for
your repository. Travis documentation
provides an in-depth explanation for the various build configurations.
Here I will stick to my own requirement.
Go to the cloned repository, use the command:
travis setup releases
Follow the steps to generate the
.travis.yml file based on need, here is the file I use.
before_install: - "sudo apt-get update && sudo apt-get install -y --no-install-recommends dvipng latexmk texlive texlive-base texlive-full" script: - latexmk -pdf myTexFile.tex before_deploy: - git fetch --tags deploy: provider: releases api_key:[Your Key] file: myTexFile.pdf skip_cleanup: true on: repo: gitUsername/repoName tags: true all_branches: true
The main updates here are, the
before_install scripts, we first
install all dependencies before actually compiling the program.
skip_cleanup tells Travis not to stash all changes before the code is
This configuration is done for all tagged commits on Github. For various
all_branches needs to be defined and also
git fetch --tags
makes sure it has all valid tags before starting the deploy phase.
It must now be possible to automatically generate builds, to generate a build make sure to tag your commit, using:
git commit -a -m "Message" git tag tagName git push origin master --tags
This should now trigger a build on the Travis server. Builds can be
monitored from the user’s homepage. If build and deployment was a
success, you should see the files under
releases tab on the