Webinar Replay

Development to Live Workflow

WordPress Workflow

Here are the software / services that I use:
Bitbucket for my online repositories
WP Migrate DB Pro to keep my databases in sync
Desktop Server to run WordPress locally on my computer
SourceTree for a GUI interface to my GIT repository

Files to be included in .gitignore file

# Exclude these files from the git repo
wp-content/upgrade/*
wp-content/uploads/*
sitemap.*
wp-config.php
    • anon Reply

      Dustin,

      I’ve spent hours reviewing various articles on WordPress development workflows, and this is by far the easiest to understand. Love your podcasts and everything you do here.

      Some questions:
      1) This doesn’t show use of a staging server. While I can understand the local dev -> remote staging process would be the same as you show above, it adds a nuance for production. I.e. I’d be ok with autodeployment of detected code changes in staging, but I don’t think I’d be ok with autodeployment of detected code changes in production. I’d want to test in staging (to make sure that everything works on my host provider), and then, if all was ok, deploy to production. Would I have to manually deploy to production then? “Manual”, I suppose, could include a manual invocation of git from the production server? Any clarification on this type of scenario would be appreciated.

      2) Do you put your site in maintenance mode when you upgrade production to prevent users from submitting comments before you’ve had a chance to upload your [recently synched with production] dev db data to production?

      3) Do you do some sort of malware scan before bringing files from production to your local dev? Does DesktopServer act like some sort of container in the situation where you download something bad locally? It seems like it is a VM, but a VM that has reach into your host, so I’m not sure how this works security-wise.

      4) Finally, maybe this is a mis-categorization of what I am reading, but it seems like more techie-types use Vagrant/VVV (and possibly now moving toward Docker?) vs Desktop server. Why do you think this is? What does VVV allow one to do that cannot be done with DesktopServer?

      Thanks in advance if you can answer any or all of these questions.

      I’ll *watch this space*.

      May 19, 2015
    • Prescott Perez-Fox Reply

      A little after-the-fact, but I finally took myself through some tutorials and installed SourceTree and BitBucket. Going to build my next version of my site using the workflow as you describe. I’ll probably hit you up for help if I need it. 🙂

      Mar 31, 2016
    • fuffkin Reply

      Dustin,

      Great Webinar! A couple of questions:

      – In the .gitignore file, it looks like you are ignoring all of the wp-content/uploads folder too. Isn’t that where all post images etc are stored? If so why do you exclude it?

      – What do you do about premium plugins? When you setup a local site, are they then unlicensed? In order to update these locally would you need multiple licenses (one foe live and one for dev)? How do you address this licensing when migrating the database to and fro?

      Apr 16, 2016
      • Dustin Hartzler Reply

        1 – I don’t track changes to the uploads folder, because I add all the images via the WordPress Dashboard.

        2 – I always buy multiple licenses for my plugins (or developer licenses) so I can have licensed copies on both sites

        May 2, 2016
        • fuffkin Reply

          Does that mean you do all you posts and image uploads on the Live site?
          Btw, I’ve found that if you only have a single plug-in licence, you can often login to the your account on the vendor and download the latest plugin and then manually unzip and replace the plugin on the dev site. Then you have the latest one – seems to work quite well.

          May 2, 2016
          • Dustin Hartzler Reply

            Yep! All of my posts and images are uploaded to my live site and then I pull them back to development when I sync up my dev site.

            May 4, 2016
            • fuffkin

              Cool! Out of interest do you use the “Developer” version of WP Migrate DB Pro that allows you to pull down / sync the media files too? Or do you manually copy them across with ftp or something similar. If I’m understanding correctly, syncing your database alone (as with the entry level Migrate DB Pro) will not pull down the images or other files uploaded to the live site. You need to have a strategy to get the media files too.

              BTW. I Love the workflow you describe here. Thanks for sharing!

              May 4, 2016
    • Dustin Hartzler Reply

      I do not use the WP Migrate DB Pro media syncing feature.

      When I create a new podcast episode, I make a featured image for the post. One created, I save it to my desktop.

      I upload the image to my media library thru my live http://YourWebsiteEngineer.com WordPress Dashboard.

      Then I drag the image from my desktop to my local install of ywe.dev which is running Desktop Server.

      May 4, 2016
      • fuffkin Reply

        Thanks Dustin! Crystal clear now.

        May 4, 2016