← All examples
Team Onboarding onboardinggit

New Hire Setup

Install a team's standard toolchain and configure Git in one command — no tribal knowledge, no 'ask Alice how to set this up.'

Replaces: an onboarding doc with 20 manual install steps

The whole point of this job is that a new engineer’s first command is meriadoc job onboard, not “read the wiki page that’s three versions out of date.” on_failure.continue: true on the install job means one failed install (say, a cask that needs manual approval) doesn’t block the rest — the new hire sees exactly which step to retry, instead of a wall of setup instructions with no feedback on what’s actually done.

version: v1

tasks:
  install-homebrew:
    description: "Install Homebrew"
    cmds:
      - command -v brew || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  install-git-tools:
    description: "Install git, GitHub CLI, and git-lfs"
    cmds:
      - brew install git gh git-lfs
      - git lfs install

  install-node:
    description: "Install Node.js via NVM"
    cmds:
      - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
      - export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && nvm install $NODE_VERSION
    env:
      NODE_VERSION:
        type: string
        default: "20"

  configure-git:
    description: "Set global Git identity"
    cmds:
      - git config --global user.name "$GIT_NAME"
      - git config --global user.email "$GIT_EMAIL"
      - git config --global init.defaultBranch main
    env:
      GIT_NAME:
        type: string
        required: true
      GIT_EMAIL:
        type: string
        required: true

  clone-repos:
    description: "Clone the team's repositories"
    cmds:
      - mkdir -p ~/work
      - cd ~/work && gh repo clone $ORG/frontend || true
      - cd ~/work && gh repo clone $ORG/backend || true
    env:
      ORG:
        type: string
        default: "mycompany"

jobs:
  onboard:
    description: "Full new-hire environment setup"
    tasks:
      - install-homebrew
      - install-git-tools
      - install-node
      - configure-git
      - clone-repos
    on_failure:
      continue: true
      cmds:
        - echo "Some steps failed — check the output above and re-run them individually with 'meriadoc task <name>'."

Run it:

meriadoc job onboard --env GIT_NAME="Jane Doe" --env GIT_EMAIL=jane@mycompany.com