shoplab-team/Shopify Theme Deploy & Sync

Standardized Shopify theme deployments for staging and production with backups, selective uploads, and live sync

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
modeDeployment mode: staging, production, or sync-liveyes
storeShopify store domain (e.g., your-store.myshopify.com or prefix). Can also be set as SHOPIFY_STORE_URL secret.no
theme_pathPath to theme directory (e.g., "dist" if theme is in dist folder)no.
branch_stagingBranch name for staging deploymentsnostaging
branch_productionBranch names for production deployments (comma-separated)nomain,master
build_enabledEnable build stepnotrue
build_node_versionNode version to useno22.x
build_package_managerPackage manager: npm, yarn, or pnpmnonpm
build_commandBuild command to runnonpm ci && npm run build
build_cwdWorking directory for buildno.
json_pull_globsGlob patterns for JSON files to pull from live theme (newline-separated)notemplates/*.json locales/*.json config/settings_data.json sections/*.json snippets/*.json templates/customers/*.json
json_sync_on_stagingWhether to sync JSON files from live theme during staging deploymentsnotrue
push_extra_ignoreAdditional glob patterns to ignore during push (newline-separated)no""
push_nodeletePrevent deletion of files on remotenofalse
backup_enabledEnable theme backups for productionnotrue
backup_retentionNumber of backups to retainno3
backup_prefixPrefix for backup theme namesnoBACKUP_
backup_timezoneTimezone for backup timestampsnoUTC
deploy_ignore_json_on_prodIgnore JSON files on production deploy (except default locale in Phase B)notrue
deploy_push_default_localePush default locale (en.default.json/schema.json) in Phase B when ignoring JSONnotrue
deploy_allow_live_pushAllow pushing directly to live themenofalse
versioning_enabledEnable automatic version incrementingnotrue
versioning_formatVersion format: "X.X.X" (no padding), "X.X.XX" (patch padding), or "X.XX.XX" (full padding, default)noX.XX.XX
versioning_sourceVersion source: "theme" (use theme name, default) or "release" (use latest GitHub release tag)notheme
versioning_startOptional starting version (e.g., "3.0.0"). Only used with versioning_source: theme if theme has no versionno
sync_filesFiles to sync: all (sync all theme files), json (only JSON files), custom (use sync_only_globs patterns)noall
sync_only_globsGlob patterns for custom sync mode (newline-separated). Only used when sync_files is "custom". Supports negative patterns with ! prefixno""
sync_exclude_patternFiles to exclude when sync_files is "all" (newline-separated). Example: assets/compiled.cssno""
sync_branchBranch name for sync commitsnoremote_changes
sync_target_branchTarget branch for PR in sync-live modenostaging
sync_commit_messageCommit message for syncnochore(sync): import live JSON changes
sync_typeSync type: pr (create pull request) or push (direct push to branch)nopr
dry_runRun in dry-run mode (no actual changes)nofalse
namedescription
theme_idID of the deployed theme
theme_nameName of the deployed theme
preview_urlPreview URL for the deployed theme
editor_urlEditor URL for the deployed theme
versionVersion tag after deployment
package_pathPath to theme package ZIP file (production mode with versioning)
syncedWhether sync was performed (sync-live mode)
files_countNumber of files synced (sync-live mode)
branchBranch used for sync (sync-live mode)
pull_request_urlURL of created/updated pull request (sync-live mode with PR)
deployment_timeTime taken for deployment in seconds