Skip to content
Moku LabsDocs
@moku-labs/ci pages

@moku-labs/ci

One CI and release pipeline. Tokenless publishing.

ci.mdllms.txt

Overview

@moku-labs/ci is one CI and release pipeline for every Moku package: reusable GitHub workflows pinned by tag, plus the moku-release CLI that installs them into a project. A project keeps two short workflow files and a few scripts. Everything else lives in one place.

  • One copy of the pipeline. Every package calls the same reusable workflows from @v1. A fix lands once and reaches every project.
  • Scripts are the interface. The workflows call bun run lint, never a tool directly. A project with special needs changes its own script.
  • No tokens. npm Trusted Publishing with id-token: write. There is no NPM_TOKEN anywhere.
Who releasesVersion
a merge to mainpatch, always
a personminor
a person, for a milestonemajor

Install

bun add -d @moku-labs/ci
bun run release:setup

release:setup writes the two workflow files and the Dependabot files, adds the missing scripts, registers the trusted publisher and applies the branch ruleset. Run it again any time: it only does what is still missing.

Quick start

The CI caller is a thin file. All logic lives in moku-labs/ci:

.github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:

permissions:
  contents: read

jobs:
  ci:
    uses: moku-labs/ci/.github/workflows/package-ci.yml@v1

Every pull request then reports four checks: ci / lint, ci / types, ci / test and ci / build. Check the setup any time:

bun run release:doctor

Start with Claude

Describe what you want. The conductor picks the packages.

Build a blog with tags and an RSS feed on @moku-labs/web

Add a D1-backed comments API with @moku-labs/worker

Make a couch quiz game: TV shows questions, phones answer

Ship this app to macOS and iOS