Skip to main content

Setting Up CI/CD

This guide walks through a recommended workflow for a team continuously deploying a Shopify theme with Theme Deploy.

main → live theme (auto-publish on)
develop → [TD] develop (team integration preview)
feature/* → [TD] feature/... (per-feature previews)

Step by step

1. Put your theme in a GitHub repository

Your repo root should be a standard Shopify theme:

assets/
config/
layout/
locales/
sections/
snippets/
templates/

Don't worry about config/settings_data.json — Theme Deploy always uses the live theme's settings at deploy time, so you can safely .gitignore it or leave a placeholder.

2. Connect the repository

Follow Connecting GitHub. After selecting the repo, your default branch is deployed once automatically — check the dashboard and open the preview to verify the theme renders correctly.

3. Verify with preview deployments first

Leave auto-publish off initially. Push a small change to a feature branch:

git checkout -b feature/test-deploy
# edit a snippet or asset
git commit -am "Test Theme Deploy"
git push -u origin feature/test-deploy

Within moments you should see a new deployment on the dashboard, and a [TD] feature/test-deploy theme in your Shopify admin. Open the preview link to confirm.

4. Enable auto-publish

Once you trust the pipeline, toggle auto-publish on the dashboard. From now on, pushes to your production branch update your live theme directly.

5. (Team plan) Tune your branch rules

On the Team plan, open Settings to:

  • set a dedicated production branch (e.g. production), and
  • restrict preview deployments to selected branches so experimental pushes don't consume usage minutes.

Day-to-day workflow

  1. Branch off main for each feature.
  2. Push — review the change on the branch's preview theme with stakeholders.
  3. Merge to main — the merge push deploys straight to the live theme.
  4. Periodically delete stale [TD] themes from the Shopify admin.
Theme editor changes

Merchants can keep using the Shopify theme editor while you deploy — settings are preserved automatically. But code changes made directly in the Shopify code editor will be overwritten by the next deploy. Make all code changes in Git.