Template for creating a project to manage a Drupal site with Composer, and test with Circle CI. Use `composer create-project` to make your own project, or, if you prefer to clone the git repository, run `composer install` followed by `bin/init-new-project` to replace this file and set up your start
This project uses a "split core" technique to manage your Drupal 8 dependencies with Composer. As of Drupal 8.0.0-rc1, you may add additional dependencies to your site directly using
composer require from your Drupal Root.
This project utilizes the pantheon-systems/circle-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 Circle CI every commit.
- Use Behat to run tests on your site from Circle.
- Automatically deploy your site to your Pantheon dev environment, or some other branch, every time the tests pass.
This project is based on the project drupal-composer/drupal-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-drupal8-circle-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-drupal8-circle-composer my-new-project-name
composer create-project will download the base files you need for your new project, then run the
init-new-project 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 circle-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 Circle 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 '8.*'
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.