This project utilizes the pantheon-systems/travis-scripts project in order to achieve the following things:
- Specify the Drupal modules, themes and libraries you use in a composer.json file, and build them with Composer.
- Automatically build components via Travis every commit.
- Use Behat to run tests on your site from Travis.
- Automatically deploy your site to your Pantheon dev environment, or some other branch, every time the tests pass.
Create a New Project
Before you begin, you should first install composer.
There are two ways to quickly create a new project for your Drupal site, using this project as a template.
- Fork this project in GitHub
- Clone your fork locally
$ cd example-drupal7-travis-composer
init-new-project script will set up the local files you will need, and commit them to your local git repository.
$ composer create-project pantheon-systems/example-drupal7-travis-composer my-new-project-name
composer create-project will download the base files you need for your new project, then run the
init-new-poroject script to set things up. The results are committed to a local git repository. You might wish to push your repository up to GitHub.
Once you have created a new project, you will still need to do some customization steps to suit your particular needs. See the travis-scripts README for instructions on how to do this.
The folder 'scripts' contain some starting scripts that you may use to customize the environment you need for your tests.
local-test script will set up a local Drupal site, run it with the PHP built-in webserver, and then run the Behat test suite. This is analagous to what happens on Travis on every commit.
You may place your custom modules and themes in
drupal/sites/all/themes/custom, respectively, and commit them to the same repository that contains your composer.json file.
If you prefer, you may instead create a Composer project for your custom components, and add them to your composer.json file. It is not necessary to make your code publicly accessible in order to do this; it is possible to create a local composer package definition that points to a private GitHub repository. See Creating your very own Composer Package for details on different ways to create composer packages.
Additional modules may be added using Composer:
$ cd my-new-project-name $ composer require drupal/devel '7.*'
This will put the specified module in
sites/all/modules/contrib, and will also update your composer.json file with the information on the module that was just added.