Prevent environment and CI issues.
HubSpot CLI, Node, and CI Preflight Checklist
Before automating a HubSpot project upload, prove the supported Node/CLI environment, require a 2025.2-or-newer project for the official GitHub Action flow, store account credentials as repository secrets, and define how success and failure will be verified.
Last source check: 2026-08-29
Citation Summary
Use this page as an unofficial, source-linked planning reference for prevent environment and ci issues. The key takeaway is: Before automating a HubSpot project upload, prove the supported Node/CLI environment, require a 2025.2-or-newer project for the official GitHub Action flow, store account credentials as repository secrets, and define how success and failure will be verified.
Suggested citation: Projects App Guide, "HubSpot CLI, Node, and CI Preflight Checklist," last source check 2026-08-29, https://projectsappguide.com/hubspot-cli-node-ci-preflight
Answer Snapshot
- Short Answer
- A HubSpot CLI CI preflight should record versions, target account strategy, secret handling, selected command path, and source-check date before upload automation.
- Applies To
- Teams adding HubSpot Projects CLI upload or migration steps to local development and CI/CD workflows.
- Verify
- Open the current CLI install, GitHub Actions, and project command docs before changing pipeline behavior.
- Boundary
- Do not expose HubSpot tokens, client secrets, private keys, or account credentials in logs or prompts.
Independent educational guide. Not affiliated with, endorsed by, or sponsored by HubSpot. Verify critical commands and platform behavior against official HubSpot documentation before deploying.
CI preflight
Record local and runner Node versions, the locally tested HubSpot CLI version, repository working directory, project path, `platformVersion`, target account, and config profile when used. At the 2026-08-29 live check, HubSpot's installation guide supports Node.js 20 or higher, and the official GitHub Actions guide requires an existing HubSpot project on platform version 2025.2 or higher.
Choose one of two official credential paths; do not mix them. The basic, single-account workflow creates repository secrets named exactly `HUBSPOT_ACCOUNT_ID` and `HUBSPOT_PERSONAL_ACCESS_KEY`, maps them to `DEFAULT_ACCOUNT_ID` and `DEFAULT_PERSONAL_ACCESS_KEY`, and runs `HubSpot/hubspot-project-actions@v1.1.0`. Never put either secret value directly in YAML, source, logs, tickets, or agent prompts.
A config-profile or multi-environment workflow is different. Commit the non-secret `hsprofile.*.json` files, create an account-ID and personal-access-key secret pair for each environment, and use `HubSpot/hubspot-project-actions/project-upload@v1.1.0` with explicit `with` inputs for `profile`, `account_id`, and `personal_access_key`. HubSpot warns that the basic workflow's `env` approach does not propagate correctly when profiles are used.
Place each workflow under `.github/workflows/`, quote branch values such as `"main"`, and match each profile, account ID, secret pair, branch, and workflow file deliberately. For the basic action only, optional `DEFAULT_CLI_VERSION` should be a fixed, tested release instead of `latest` or `next` when overriding the predetermined stable default.
Secrets and logs
Inventory the values CI needs, but do not paste tokens, client secrets, private keys, or account credentials into docs, tickets, or agent prompts. The handoff should say where secrets live, who owns them, and which environment uses them.
Review logs for accidental disclosure. A migration or upload workflow is not ready for client handoff if command output could expose OAuth secrets, tokens, or internal account IDs unnecessarily.
For agencies, separate client-facing evidence from internal build details. The client may need proof of version checks and source verification, not raw secret names or CI internals.
Expected output and failure recovery
The documented success path is: a push to the configured branch starts the workflow, the HubSpot action validates and uploads the project, the GitHub run completes, and HubSpot Builds & Deploys shows the resulting build. HubSpot attributes action-triggered builds with the commit message and SHA, so record that SHA, build result, deployment result, and the account/environment that received it.
If the workflow does not parse, quote branch values such as `"main"`. If profile support is missing, confirm the sub-action is at least `project-upload@v1.1.0`. If a profile targets the wrong account or authentication fails, verify the committed profile's `accountId`, its environment-specific secret pair, the explicit `with` inputs, and `${{ secrets.SECRET_NAME }}` references; do not switch back to the basic `env` pattern. If no run starts, check the branch, `.github/workflows/` path, extension, and whether Actions is disabled.
Triage before retrying: a Node or dependency-install error belongs to runner/toolchain setup; a lint or validation error belongs to project/configuration readiness; a wrong account/profile or project-directory result belongs to targeting; and missing or ambiguous command JSON belongs to observability. In the last case, inspect HubSpot Builds & Deploys and `hs project list-builds` instead of inferring that no build was created from one missing field.
A green GitHub job without a matching HubSpot build is not accepted, and a successful build is not automatically a successful deployment or install. Open `hs project open` or the Projects dashboard, review Builds & Deploys, and run the written install/feature smoke tests before promotion. Keep QA and production accounts on separate branch/profile/secret paths when you adopt HubSpot's multi-environment pattern.
Checklist
- Require Node.js 20 or higher unless current HubSpot guidance has changed; record runner and local versions.
- Record the tested CLI version, project working directory, and `platformVersion`; require 2025.2 or higher for the official action flow.
- Record and verify the repository working directory, target account, and config profile separately.
- Choose a basic single-account workflow or a config-profile workflow; never combine their credential-passing patterns.
- For the basic path, create `HUBSPOT_ACCOUNT_ID` and `HUBSPOT_PERSONAL_ACCESS_KEY` secrets, map them to `DEFAULT_ACCOUNT_ID` and `DEFAULT_PERSONAL_ACCESS_KEY`, and use `HubSpot/hubspot-project-actions@v1.1.0`.
- For profiles, commit `hsprofile.*.json`, use an environment-specific account-ID/key secret pair, and pass `profile`, `account_id`, and `personal_access_key` through `HubSpot/hubspot-project-actions/project-upload@v1.1.0` `with` inputs.
- Place workflows under `.github/workflows/`, quote branches, and pin a tested `DEFAULT_CLI_VERSION` only for a deliberate basic-action override.
- Match the GitHub run and commit SHA to HubSpot Builds & Deploys, then record build, deploy, and smoke-test results.
- Exercise the YAML, action-version, secret, branch, and workflow-path recovery checks before escalating.
Claim / Source Map
These are the main claims this page relies on. Re-open the linked official HubSpot source before production-affecting commands, uploads, submissions, or client delivery.
| Claim | Official source |
|---|---|
| At the 2026-08-29 check, HubSpot supports Node.js 20 or higher for local tooling and recommends using the current CLI release. | Install the HubSpot CLI |
| HubSpot's official GitHub Actions setup requires a project on platform version 2025.2 or higher and repository secrets for the HubSpot account ID and personal access key. | Set up GitHub Actions for HubSpot projects |
| The official basic workflow uses `HubSpot/hubspot-project-actions@v1.1.0` and verifies success in both GitHub logs and HubSpot Builds & Deploys. | Set up GitHub Actions for HubSpot projects |
| For config-profile workflows, HubSpot requires the `project-upload@v1.1.0` sub-action with explicit `with` inputs because the basic workflow's environment-variable approach does not propagate correctly with profiles. | Set up GitHub Actions for HubSpot projects |
FAQ
What should CI record before HubSpot CLI uploads?
Record CLI version, Node version, target account strategy, secret storage, selected command path, and a current source-check date.
Should CI logs include HubSpot secrets?
No. Do not paste tokens, client secrets, private keys, or account credentials into docs, tickets, logs, or agent prompts.
How do I prove a HubSpot GitHub Actions deployment succeeded?
Match the successful GitHub workflow and commit SHA to the build shown in HubSpot Builds & Deploys, then separately record deployment and install or feature smoke-test results.
Get the full Projects CLI Skill Pack
Includes the agent skill, command cheatsheet, checklist, CSV tracker, handoff template, and official source map.
Independent educational product. Gumroad checkout opens in a separate page; no official affiliation or guarantee is implied.