Local Community

Deployment workflow between Local, Flywheel and FTP site?

Hi there,
I develop and maintain a multisite WooCommerce based site using Local. I then push changes, primarily to the theme to a Flywheel hosted site. This works exceptionally well and I have never had any real issues. The Flywheel site is our QA site, where new features etc are approved. That said, our live site is hosted elsewhere on a dedicated server.

So my question is this, what’s is the best way to deploy changes? Currently I just FTP files that need to be moved, keeping a really close eye on what gets moved, and where to. It’s not a very elegant or fool-proof way but it gets the job done. Rolling back can prove quite hard as well.

I thinking of GitHub/bitbucket to manage version control but then getting them to live? If Local only had a why use Magicsync to push stuff around; wishful thinking I guess.

Chris

I use a theme-specific git repo for this, using https://gitftp-deploy.com/ to deploy changes. It’s been rock solid for years, and it’s incredibly fast for when you’re making changes to just the theme.

Using Magic Sync for deploying to Flywheel or WP Engine is a great solution. If you have Local Pro, then you can use the Magic Sync Viewer to select only a few files that you want to be deployed.

https://localwp.com/help-docs/local-pro/how-does-the-magic-sync-viewer-work-in-local-pro/

But you mention a few things that make this tricky:

  1. Multisite. This adds complexity, as well as Local can’t use Connect with multisite
  2. WooCommerce. Not exactly tricky, but you have to be mindful and remember to not include the DB when deploying since orders may be lost (it doesn’t sound like that’s what you’re doing, but I thought I would touch upon it to be complete)
  3. Eventually needing to deploy to a third-party host

That GitFTP tool that @redblue shared looks cool!

FTP is fine for most simple situations, but in general, I agree that having Git (in the form of Github or Bitbucket) is a great idea and is a workflow I would recommend implementing.

In terms of how you get the theme to exist on the remote server after pushing the theme changes up, I usually turn to the github-updater plugin. (created by the wizard @afragen)

It allows you to push your changes to Github, then have those changes deployed to the remote WordPress site.

One thing I should call out explicitly – you can use the “Branch Support” feature of Github Updater to pull in different branches of code:

I mention it because you could have a workflow where your staging site on Flywheel is pulling from a staging branch, which you and any other contributors are merging in changes to. Once you feel 100% about the staging site’s code, merge the staging to your main branch and have the production site update.

If you do need to roll-back the production for any reason, you can do so by reverting the commit to master and “updating” with Github Updater.

1 Like