# Shopify Deploybot

This is a node module to assist with deploying to Shopify stores. It's meant to be used with the Something Digital Azure Devops Pipelines.

By default, the deployed theme contains the deployment date and commit hash. However, because the theme title can be changed by the merchant, the deployment tooling injects a new file called `deploybot-meta.json` within the **/assets**. This file contains the date of deployment and the commit hash which was used during that deployment. This allows our tooling to know what version is deployed even after a theme name is changed in the admin. The file is accessible via Shopify theme code editor and also via the customer storefront for automated performance tooling.

#### Example:

```json
{
  "commitHash": "d90cad85f0b786e405c3f6c53d8777b21bdc77fb",
  "deployDate": "Wed Jun 03 2020 17:54:27 GMT+0000 (Coordinated Universal Time)"
}

```

## Install

To install, run `npm i sdinteractive/Shopify-DeployBot -g`

To run a command, run `deploybot <command>`.

## Publish new version

To publish a new version on npm, run `npm publish`.

## Commands

 Command | Purpose
-|-
`commitHash` | Retrieves latest commit hash of live theme
`download` | Download the live theme. Used during nightly theme sync
`prep` | Download live theme settings
`upload` | Upload theme.zip to shop
`check` | Check if theme is processing.
`publish` | Publish theme
`cleanup` | Delete theme if PR or keep up to 5 releases for master/develop deploy.

> Parameters coming soon.

## Development

1. Run `npm install` to install dependencies.
2. Copy .env.sample to .env and add appropriate credentials
3. Run `npm link` to symlink cli bin tool.
4. Run `npx deploybot <command>` to run a command
5. Once you're finished developing, run `npm unlink`
