Struggles with Jekyll and Cloudflare Pages

TL;DR Solution

  • Open your Application
  • Navigate to Settings
  • Click Builds & Deployments
  • Change Build System Version from 2 to 1

cloudflare-jekyll

My Introduction to the Issue

Over the last few years working for Nordstrom, I’ve grown more into a lightweight Engineering role and it has been very interesting. I’ve recently begun to use Git for version control on my scripts and tracking our Ansible and Terraform IaC templates.

This got me interested in using GitHub at home for tracking some basic python3, or HTML5 that I might write. As I spent time on GitHub, of course I checked out GitHub Pages. Played around enough to install Ruby and Jekyll onto my PC and utilize it to build on a few templates. However GitHub Pages doesn’t allow commercial usage of their Pages platform and I would want to do this semi-commercially. Cloudflare Free Tier however provides unlimited repos given less than 500 commits a month. I can keep my commits lower than 500 a month.

For the last 6 months my Business has ran from Cloudflare Pages that I had migrated from GitHub using the Cloudflare Documentation here. Everything in this pipeline had been fine and working. Today was a different story when trying to create a new repo.

The Error Message

11:46:50.029 Executing user command: jekyll build
11:46:51.872 /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:304:in `check_for_activated_spec!': You have already activated i18n 1.14.1, but your Gemfile requires i18n 0.9.5. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
11:46:51.873  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:25:in `block in setup'
11:46:51.873  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/spec_set.rb:165:in `each'
11:46:51.873  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/spec_set.rb:165:in `each'
11:46:51.873  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:24:in `map'
11:46:51.874  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler/runtime.rb:24:in `setup'
11:46:51.874  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/bundler-2.4.19/lib/bundler.rb:162:in `setup'
11:46:51.874  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/jekyll-4.3.2/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler'
11:46:51.874  from /opt/buildhome/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/jekyll-4.3.2/exe/jekyll:11:in `<top (required)>'
11:46:51.874  from /opt/buildhome/.asdf/installs/ruby/3.2.2/bin/jekyll:25:in `load'
11:46:51.875  from /opt/buildhome/.asdf/installs/ruby/3.2.2/bin/jekyll:25:in `<main>'
11:46:51.879 Failed: Error while executing user command. Exited with error code: 1
11:46:51.889 Failed: build command exited with code: 1
11:46:53.035 Failed: error occurred while running build command

I Googled that second line every which way I could. I added webrick, I recreated the Gemfile over and over like a mad man. Finally, I found it… This THREAD showing that the current version of Liquid and the current version of Ruby are broken compatibility wise. Nothing I can do….. Until I found this sneaky setting….

Changing from Version 2 to Version 1 resolved my issues entirely.

Version 1 runs a Ubuntu 20.04 LTS runner with the older Ruby version 2.7.1 - Using this runner I am able to successfully deploy my GitHub Pages projects onto Cloudflare Pages.

Version 2 run s a Ubuntu 22.04 LTS runner with the newer Ruby version 3.2.2 - Unfortunately the upstream creators of Liquid made core code changes between v4 and the new v5. Now many Jekyll gems based on Liquid are broken.

2024

Back to top ↑

2023

Mom Said Redefine Success

In High School I had one dream that stands out. Own a Porsche by the time I was 26. Looking back, I have no idea where this dream came from; because I was ra...

Back to top ↑

2022

Back to top ↑

2021

Back to top ↑