Skip to content
lowlydbaPublic

About

Every CI run is a dungeon encounter. Green builds win fights. Red builds lose them. Your hero grows with you.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

QuestOps

Every CI run is a dungeon encounter.
Green builds win fights. Red builds lose them. Your hero grows with you.

A QuestOps encounter in a CI log: a pixel-art monster, three rounds of spells and blows, and the hero's card

QuestOps adds one classic text-dungeon encounter to the end of your workflow. It reads how the job went, rolls a monster, a treasure chest or a trap, and plays it out in the job log. Your hero levels up, earns 'kens (nobody knows what for), picks up loot and keeps a streak, all saved to a branch in your own repository.

There's nothing to host, no account to make and no dependencies to install (it runs on Python's standard library and a small Node shim). It's one step in your workflow.

Contents: Live demo · Where it comes from · Add it to a workflow · How it plays · Meet the locals · Show off your hero · Learn more

Try the live demo

This repository plays its own game on every push to main, so its data branch is a working example you can browse:

Pull requests get a one-off encounter as a single comment that later pushes edit (comment: true), without touching the leaderboard.

Where it comes from

QuestOps stands on the shoulders of giants. From my childhood of text adventures, MUDs, and JRPGs it borrows the short scene of a monster, a few lines of narration, dice rolls, and a role-playing character sheet.

I was once fascinated with idle RPGs and this feels like an extension as a passive fantasy experience, while allowing your technical talent to still drive outcomes. The hero advances on its own while you do work, and the game only asks that you keep merging.

The twist is that your CI pipeline is the dungeon main. Passing builds win fights, failing builds lose them, and the d20 decides the rest.

Add it to a workflow

permissions:
  contents: write # saves your hero to the questops-data branch
  actions: read # reads how the job went

steps:
  - uses: lowlydba/quest-ops@v1 # anywhere in the job, even first
  - run: npm test

The encounter happens when the job finishes, after every other step, so it knows whether your tests passed. It shows up in three places:

  • The job log, in full colour pixel art.
  • The job summary.
  • The questops-data branch, which has a Hall of Heroes with every player's card.

How it plays

  • A failing run is always a loss. The monster wins, the chest bites and the trap springs.
  • A passing run is usually a win.
  • Your hero persists. Class and face come from your username. Levels come slowly, gear is equipped automatically, and achievements are earned over hundreds of runs.
  • Re-running a job doesn't farm wins. Each commit counts once per hero.
  • Bots don't quest. Dependabot and friends roll for a traveling merchant instead, who buys unused loot from a random hero's bag.

Meet the locals

Lint Goblin Cache Slime Wraith of the Flaky Test Ancient Wyrm of Legacy Prod Traveling Merchant
Traveling Merchant lore
"Mmm, trailing whitespace." "Cache me outside. How bout stale?" "Only a Sith deals in absolutes. I deal in retries." "THIS BRANCH IS PROTECTED. SO AM I." "No questions. Fair prices."

Tougher "Senior" and "Skip Level" versions turn up as you increase your level. The merchant only shows up when a bot finishes its work. The data branch carries a full bestiary and reliquary, with lore for every monster and item.

Show off your hero

A QuestOps character card

Every quest refreshes your character card and a set of shields.io style badges on the data branch. Embed them anywhere:

![hero](https://raw.githubusercontent.com/OWNER/REPO/questops-data/characters/you.svg)

They're static files, so there's no server, and they're as fresh as your last build.


Learn more

  • Setup and configuration: inputs, permissions, the data branch, other CI systems, Docker and the CLI.
  • Recipes: one leaderboard, several per repository, or one shared across repositories.
  • How the game works: classes, stats, levels, loot, odds and the merchant.
  • Development: running the tests and how the project is put together.

About

Every CI run is a dungeon encounter. Green builds win fights. Red builds lose them. Your hero grows with you.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages