Running asciidoctor-pdf on TeamCity
I've been using asciidoctor-pdf to generate PDF and while I was initially running the tool locally I eventually decided to setup a build on TeamCity.
It was a bit trickier than I expected, mostly because I'm not that familiar with deploying Ruby applications, but I thought I'd capture what I've done for future me.
I have the following Gemfile that installs asciidoctor-pdf and its dependencies:
source 'https://rubygems.org' gem 'prawn' gem 'addressable' gem 'prawn-svg' gem 'prawn-templates' gem 'asciidoctor-pdf'
I don't have permissions to install gems globally on the build agents so I'm bundling those up into the vendor directory. It's been a long time since I worked on a Ruby application so perhaps that's par for the course.
bundle install --path vendor/ bundle package
On the build agent I'm running the following script:
export PATH="$PATH:/home/teamcity/.gem/ruby/2.3.0/bin" mkdir $PWD/gems export GEM_HOME="$PWD/gems" gem install bundler --user-install --no-rdoc --no-ri && bundle install ./vendor/ruby/2.3.0/bin/asciidoctor-pdf -a allow-uri-read blog.adoc
I override where gems should be installed and then execute the asciidoctor-pdf executable from the vendor directory.
It all seems to work quite nicely but if there's a better approach that I should be taking so let me know in the comments.