Aaron Norling

Simple GitHub Workflow For Spiker

One of the things I love about the Spiker gem is how easy it makes it to spin up a clean, isolated environment for trying out ideas. Whether I’m validating a concept, writing up a quick example for a coworker, or demonstrating technical proficiency, Spiker helps me get there faster.

And if you’re spiking with the intention of sharing your spikes, one simple addition could transform your spikes from helpful to impressive: a GitHub Actions workflow.

Why bother? Well, if you’re sharing your spike with others - especially in public repositories - they may not always have the time or the ability to download and run your code locally. Docker-By-Default, the standard in new Spiker spikes, tries to improve this situation but isn’t going to help 100% of the people viewing your code. By adding a GitHub workflow, you’re showing that your code actually works 🟢 right out of the box. It’s like saying:

“Don’t just take my word for it… here’s the proof.”


A Minimal Workflow for RSpec

If you’re using RSpec with your spike (as I often do), here’s a simple GitHub Actions workflow file you can drop into .github/workflows/ruby-specs.yml:

name: Ruby Specs

on:
  push:
    paths:
      - '**.rb'
      - 'spec/**'
      - 'Gemfile'
      - '.github/workflows/ruby-specs.yml'
  pull_request:
    paths:
      - '**.rb'
      - 'spec/**'
      - 'Gemfile'

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.3.0
          bundler-cache: true

      - name: Run RSpec tests
        run: bundle exec rspec

Replace the last line (bundle exec rspec) with the appropriate command for your test framework, adjust the paths as needed, yada yada.


Bonus: Clean Signal, Low Maintenance

Spiker spikes are intentionally lean, so this workflow is minimal by design. It doesn’t need to lint, deploy, or build - just prove that the tests run. This keeps the feedback loop fast and the noise low. And since it’s GitHub-native, it Just Works™️ for anyone browsing your code.


Encourage Confidence and Contribution

If you’re sharing spikes to teach, mentor, or collaborate, a passing test badge (or a green check on a PR) is a subtle but powerful way to signal that your spike is safe to run and worth engaging with.

A green check on a GitHub workflow run

So next time you spin up a spike with Spiker, take 2 extra minutes and add a .github/workflows/ruby-specs.yml. Your future self - and your collaborators - will thank you.