GitHub Action
HubSpot CMS Deploy
Automatically deploy a HubSpot CMS project to your account 🚀
In your GitHub repo, create two new secrets for:
HUBSPOT_PORTAL_ID
- This is your HubSpot account IDHUBSPOT_PERSONAL_ACCESS_KEY
- Your personal access key
This guide walks through setting up a new workflow file that automatically uploads new changes on your main
branch to your HubSpot CMS account. If you're adding a deployment step to an existing workflow, you can skip ahead.
- In your project, create a GitHub Action workflow file at
.github/workflows/main.yml
- Copy the following example workflow into your
main.yml
file.
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.3.3
- name: HubSpot Deploy Action
uses: HubSpot/hubspot-cms-deploy-action@v1.7
with:
src_dir: <src> ## ex. src
dest_dir: <src> ## ex. my-theme
portal_id: ${{ secrets.hubspot_portal_id }}
personal_access_key: ${{ secrets.hubspot_personal_access_key }}
- Replace the
src_dir
with the directory of your CMS project in your repo - Replace the
dest_dir
with the directory it should be uploaded to in your target account - Commit and merge your changes
Note: Do not change the portal_id
or personal_access_key
values in your workflow. Auth related values should only be stored as GitHub secrets.
If you'd like to auto-deploy to a staging account you have in HubSpot, you can create an additional workflow that runs on push
to your associated stanging branch in your repo.
on:
push:
branches:
- qa
...
portal_id: ${{ secrets.staging_account_id }}
To add HubSpot CMS deployment as a step in an existing GitHub Action workflow, add the following step:
- name: HubSpot Deploy Action
uses: HubSpot/hubspot-cms-deploy-action@v1.7
with:
src_dir: <src> ## ex. src
dest_dir: <src> ## ex. my-theme
portal_id: ${{ secrets.hubspot_portal_id }}
personal_access_key: ${{ secrets.hubspot_personal_access_key }}
Note: You can configure your action to run based on different criteria, such as pushing to a QA branch. Learn more about events that trigger actions here.
src_dir
- Project directory relative to the repodest_dir
- Target directory in HubSpot
HUBSPOT_PORTAL_ID
- Target account idHUBSPOT_PERSONAL_ACCESS_KEY
- Authentication key