The tutorial will focus on setting up CircleCI config.yml
file to deploy the master branch of a GitHub repository via SFTP.
To follow along with this tutorial you will need:
1. A theme or plugin that you would like to deploy. Here is a guide to WordPress plugins if you need some recommendations.
2. Have this theme/plugin in an already existing GitHub repository.
3. An account at CircleCI, which requires you to login using your GitHub (or BitBucket) account.
Setting Up CircleCI
Once logged in to CircleCI, you will want to add a new project by clicking “Add Projects” on the left hand side navigation menu.
From here, you will be presented with a list of repositories in your GitHub account. Choose the repository for the theme or plugin you’d like to deploy and click “Set Up Project.” In the image below, the pressable-theme
project is being set up for use in this tutorial.
From here, you will be presented with a configuration screen. Choose “Linux” as the Operating System, “PHP” or “Other” as the Language, and then click “Start Building” on the bottom right hand corner.
We will be using a custom config.yml
file, so you can safely ignore the one that gets generated for you by the site.
After this, you will need to configure a few variables that will get used by CircleCI to make connections and know where to place your plugin or theme.
You’ll need to click the settings cog on the project that you are wanting to configure variables for. In the image below, the settings cog for the pressable-theme
project is selected.
From here, click on the “Environment Variables” menu item under the “Build Settings” menu header. Then, click on “Add Variable” and add the following variables:
hostname
with valuesftp.pressable.com
username
with value set to your Pressable SFTP username.password
with value set to your Pressable SFTP password.site_name
with value set to the Pressable site name you are deploying to.theme
orplugin
with value set to the name of the theme or plugin you are deploying. (Ex.pressable-theme
in the case of this tutorial)
Setting Up Repository
From here, we need to add our config.yml
file to the repository you want to deploy. In order to do this, you will need to create a directory named .circleci
in the root of your repository. Inside that directory, you will create a new file named config.yml
. In the following config.yml
file, you will want to replace /wp-content/themes/
with /wp-content/plugins
and ${theme}
with ${plugin}
if you are deploying a plugin.
Place the following inside the config.yml
file:
Once the config.yml
file is created inside the .circleci
directory, you can make a push to your repository. CircleCI will see the push you made and will fire off a job using the config.yml
file as instructions on what to do and where to deploy.
If you visit the CircleCI interface after making a push to master, you can see it spinning up the environment and deploying the repository.
From here, you can add other features to config.yml
to make your CI setup complete.
Amanda Nadhir
Amanda serves as the Head of Sales and Enablement for Pressable. She's worked in the tech space for well over a decade and has spent the majority of that time building/training/leading teams. She loves travel and adventure and when she's not working, you can find her spending time with her family, lounging pool/beach-side, playing tennis, working out, and meeting people/making friends all along the way!