This template is based on the drupal-composer/drupal-project template, with additional tools and settings specific to the Kalamuna workflow.
The goal of this repository is to provide a clean installation with just the tools and files that we need for 95% of our Drupal projects. Alternate configurations, with lesser-used packages or frameworks, should be included as sperate packages or moved to branches which can be used when needed for particular projects.
Press the Use this template
button in Github to create a new repository for your project based on this template, or clone this repository manually and remove any unneeded git history.
terminus site:upstream:set my-site-name empty
from your command line to remove the unneeded upstream after the site has been initialized.kalacommitbot@kalamuna.com
under the Team
tab for the project (or an alternate account you'd like to use for pushing to Pantheon).Git SSH clone URL
field under the Connection info
dropdown in the Pantheon site dashboard, which is the format ssh://codeserver.dev.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX@codeserver.dev.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.drush.in:2222/~/repository.git
. Discard the git clone
and site-name
parts from before and after the URL in the provided command.Note: The circleci/php:7.3-node-browsers image is currently incompatible with Drupal 8, due to the upgrade to Composer 2. For the time being, the docker image is set to a specific tag from before composer was upgraded.
Project Settings
> SSH Keys
> Additional SSH Keys
in the new circleci interface, and at Project Settings
> SSH Permissions
in the old interface.drush.in
as the hostname and the private key text for kalacommitbot@kalamuna.com
, or whichever user you added to the pantheon project for pushing commits. The private key should start with -----BEGIN RSA PRIVATE KEY-----
and end with -----END RSA PRIVATE KEY-----
. (Kalamuna devs should look in 1password for this info.)environment variables
tab in the project settings, create a new variable with PANTHEON_REPO
as the key, and the ssh://codeserver.dev.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX@codeserver.dev.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.drush.in:2222/~/repository.git
repo url as the value. (If you encounter an error, double check that you removed git clone
and the trailing repository name that is added in the pantheon connection info.)NPM_PATH
environmental variable in the format web/themes/custom/themename/
. (Note that until circle allows environmental variables in keys, the packages used in a subfolder will not be cached. More info)composer install
to install Drupal. (You may need to increase your memory limit or execute php -d memory_limit=3G /path/to/composer install
.)composer.lock
file, and files that have been initialized for customization, like robots.txt
and settings.php
.npm it
to install the node modules, and commit the package.lock
file to the repository./web/sites/default/settings.local.php
file.)admin_toolbar_tools
, metatag
, pantheon_advanced_page_cache
, and pathauto
.drush cex
to export the configuration to the config/sync
directory, and commit to git.If using lando, edit the .lando.yml
file to set the appropriate PROJECTNAME
, PANTHEON_SITE_ID
, and PANTHEON_SITE_MACHINE_NAME
. Database credentials are set automagically by the pantheon lando recipie.
or
Create an .env
file from .env.example
, and set the appropriate database credentials and drush site url.
When installing the given composer.json
some tasks are taken care of:
web
-directory.vendor/autoload.php
,
instead of the one provided by Drupal (web/vendor/autoload.php
).drupal-module
) will be placed in web/modules/contrib/
drupal-theme
) will be placed in web/themes/contrib/
drupal-profile
) will be placed in web/profiles/contrib/
settings.php
.web/sites/default/files
-directory..gitignore-deploy
file that replaces the .gitignore
file when deploying from circle to pantheon.pantheon-systems/drupal-integrations
package which contains additional scaffolding for pantheon sites.robots.txt
file is installed initially from drupal scaffold, but any subsequent changes are not overwritten.development.services.yml
and settings.local.php
files which will be created in web/sites if they don't already exist.admin_toolbar
, metatag
, pantheon_advanced_page_cache
, and pathauto
.../config/sync
.services.yml
from the list of things that drupal-project adds, since doing that is no longer advised.package.json
file with the configuration for compiling themes with Gulp.composer install
call npm install
automatically.config_split
module.