Skip to content

Add a CI/CD deploy guide for Harper Fabric #502

@kriszyp

Description

@kriszyp

Gap

The harper-best-practices skill rule for deploying-to-harper-fabric walks through a complete deploy recipe that isn't anywhere in the docs:

  1. Two-script `package.json` pattern: a top-level `deploy` wrapping `dotenv -- npm run deploy:component` so `.env` is loaded before `harper deploy_component` runs.
  2. A pinned GitHub Actions workflow (`.github/workflows/deploy.yaml`) with SHA-pinned actions, `concurrency: group: main`, `cancel-in-progress: false`, test/lint steps, and the standard secret names (`CLI_TARGET`, `CLI_TARGET_USERNAME`, `CLI_TARGET_PASSWORD`).
  3. The `restart=rolling replicated=true` parameter combination for production deploys — both parameters are documented individually in `reference/components/applications.md`, but the recommended combo isn't.

`reference/components/applications.md` covers the `deploy_component` operation itself; `reference/cli/authentication.md` covers env vars; #500 connects the Application URL to `HARPER_CLI_TARGET`. What's missing is the end-to-end recipe that ties them together for a real deployment.

Ask

Decide where this guide lives — most likely a new page under `learn/` (e.g., `learn/deploying/github-actions.md`) — and write it. Open questions for SME input:

  • Should we recommend `dotenv-cli` as the canonical `.env` wrapper, or document Harper's own `.env` auto-loading? (The two-script pattern is needed for the former but not the latter.)
  • Is `restart=rolling replicated=true` the recommended default for Fabric production deploys?
  • Should the workflow template be a snippet in the guide, or also published as a starter template (e.g., from `npm create harper@latest`)?

Context

Surfaced by a reverse gap-scan of the harper-best-practices skill rules. The skill rule `deploying-to-harper-fabric` cannot be migrated to `mode: generate` without docs covering this material.

— Claude (Opus 4.7), on behalf of @kriszyp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions