Prose.io + Octopress + Travis-CI + GitHub Pages = ♥
I wanted to have nice workflow to write to my octopress-powered blog. So idea was:
- I’m editing or creating post in Prose.io or just in GitHub’s web editor.
- Wonderful open-source free hosted continious integration server Travis-CI builds my Octopress blog and pushes generated version back to GitHub Pages
Nice settings for Prose.io to edit Octopress blog
First, I need Prose.io to be nice with octopress. I added these lines to end of _config.yml of Octopress blog:
prose:
rooturl: "source"
metadata:
"source/_posts": |
layout: post
title: "Title"
comments: true
categories:
published: true
Thats exactly what it looks like. It tells Prose.io, which directory to load, and specifies Octopress’s metadata.
Travis
It’s a pain. This is my .travis.yml:
It’s kinda complex :) You just have to put your encoded SSH key instead of mine (all - secure: lines) and put your repo address (- REPO=). To encode SSH key for Travis I used this gist:
It works like magic!
PS. So, it builds on Travis twice. First time when you are pushing to source branch - Travis generates static site and pushes it back to master branch (to GitHub Pages). That push triggers second build on Travis, although I have branches: only: source in my .travis.yml on source branch. As workaround, I’m echoing script: "ls *.html" to master’s .travis.yml. Still, on each my blog update, Travis creates 2 VM. I hope it’s not so abusive.