Hugo and Bitrise
I’ve been playing with Hugo, a static website generator. I have never particularly enjoyed creating websites in HTML, and never found a builder that didn’t quickly annoy. Hugo appeals to my need for separation whilst offering a lovely geeky feel to website and blog creation.
I’m currently in love with Bitrise. It seems to require more tinkering than buddybuild but offers more power and flexibility. It also supports Xamarin projects, which buddybuild doesn’t.
Bitrise is designed to build iOS and Android apps. However it’s ability to modify and define your own workflows allows you to build other kinds of projects (if you don’t mind a little scripting). I’ve setup a Bitrise project which detects a push to my website git repo, builds the Hugo website and then uploads to my web server.
The Bitrise workflow editor generates a YAML file. Here’s the one which builds and deploys appsonthemove.com:
---
format_version: 1.3.1
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: "*"
workflow: primary
- pull_request_source_branch: "*"
workflow: primary
workflows:
primary:
steps:
- activate-ssh-key@3.1.1:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
- git-clone@3.4.1: {}
- script@1.1.3:
title: Build site and upload
inputs:
- content: |-
#!/bin/bash
# fail if any commands fails
set -e
# debug log
set -x
brew install hugo
hugo
cd public
scp -r * matt@myserverip:/var/www/appsonthemove.com/public_html/
- is_debug: 'yes'
- working_dir: "$BITRISE_SOURCE_DIR"
Simple to setup and seems to work great. I want to expand it eventually to build draft blog posts to a staging area so I can preview before going live. Hugo + Bitrise are a great solution for appsonthemove.com in 2017.