Github to deploy script

Today I polished, documented, and open sourced a bash script I’ve been using to do plugin deployments from Github to (plus I wanted an excuse to use the new desktop app which is awesome by the way). It’s based on code Barry Kooij sent me a while back. You can find it here:

It handles Github tagging, removing junk files, and SVN tagging with minimal effort. It also has a quick checklist to stop you forgetting to set things in the readme.txt like the stable version (I’ve been guilty of forgetting this in the past).

Once downloaded to your machine, the script requires a Github access token, and a few edits to tell it which plugin you’re deploying.

After you’ve added the details specific to your project, you simply need to open it’s parent directory in terminal, and run the command:


It then prompts you for a version, branch, and handles the deployment process.


The above demo is from a release of WP Job Manager I did today showing it working nicely. Hope it’s useful!

Show CommentsClose Comments


  • Jan Beck
    Posted November 27, 2015 at 5:43 am 0Likes

    Have you tried out What are your thoughts?

    • Mike Jolley
      Posted November 27, 2015 at 10:36 am 0Likes

      I’ve used it in the past but had some troubles when releasing WC. I cannot quite remember what went wrong…

  • Phil
    Posted November 27, 2015 at 9:48 am 0Likes

    Great stuff! I’ve actually been working on something just like this this week.

    Any particular reason for using the GH API to tag the release, rather than just ‘git tag’?

    • Mike Jolley
      Posted November 27, 2015 at 10:38 am 0Likes

      This creates a ‘release’ on Github, git tag just creates a ‘tag’.

      • Phil
        Posted November 27, 2015 at 10:45 am 0Likes

        And all the time there was me thinking they were the same thing…

  • Caspar Hübinger
    Posted November 30, 2015 at 11:30 am 0Likes

    Thank you, Mike, this is a great helper! One question: How do you handle updates for a plugin’s “assets” directory on I understand once screenshots, banners, and icon images have been committed once, they rarely need to be updated; just asking out of curiosity. The script doesn’t handle assets in the sense of, does it? Would you just edit the script when you need to add a screenshot to a repo?

    • Mike Jolley
      Posted November 30, 2015 at 12:11 pm 0Likes

      This is usually a ‘one off’ so I just use SVN/Versions app to upload these. I don’t think a release script is necessary.

      • Caspar Hübinger
        Posted November 30, 2015 at 12:47 pm 0Likes

        Agreed. Thanks again, great tool.

  • Sunny (@tha_sun)
    Posted November 30, 2015 at 9:17 pm 0Likes

    Have you tried and siblings? They have a long history and seemingly look very similar – did you have a particular reason for creating a new one from scratch?

    • Mike Jolley
      Posted November 30, 2015 at 9:53 pm 0Likes

      Some, but I have specific needs. Releases not tags, and the branch of my choice.

  • mathetos
    Posted December 1, 2015 at 10:54 pm 0Likes

    HI Mike, need to kick the tires on this. I’m curious if it can push from a Git branch to an SVN tag? Basically, I want to push to a tag so that the plugin is NOT updated live. Thanks!

    • Mike Jolley
      Posted December 2, 2015 at 10:04 am 0Likes

      You’d need to tweak the code which copies the files into the SVN directory trunk. Certainly possible if you customise it 🙂

    • Ahmad Awais
      Posted December 3, 2015 at 3:38 pm 0Likes

      Matt, that’s what I was looking into. I think I’ll fork and modify it. It’s pretty easy. Thanks to all the contributors.

  • Ahmad Awais
    Posted December 3, 2015 at 3:34 pm 0Likes

    Just used it, worked pretty great. Going to fork it and work on it a little. I am working on my bash scripting skills.
    Thanks for the cool script though.

  • Pippinsplugins (@pippinsplugins)
    Posted December 14, 2015 at 3:55 pm 0Likes

    This is wonderful. Thank you!

Comments are closed.

%d bloggers like this: