GithubHelp home page GithubHelp logo

uiowa01's Introduction

My Project

A brief description of My Project.

Using This Template

Remove this section after initial setup!

Search for and replace the following placeholders within this file:

Placeholder Example
#GIT_PRIMARY_DEV_BRANCH master or develop
#GITHUB_ORG The "org" in https://github.com/org/project
#GITHUB_PROJECT The "project" in https://github.com/org/project
#JIRA_URL https://org.atlassian.net/projects/PROJ
#LOCAL_DEV_SITE_ALIAS @example.local
#LOCAL_DEV_URL http://local.example.com/
#TRAVIS_URL https://travis-ci.com/org/PROJ

Getting Started

This project is based on BLT, an open-source project template and tool that enables building, testing, and deploying Drupal installations following Acquia Professional Services best practices. While this is one of many methodologies, it is our recommended methodology.

  1. Review the Required / Recommended Skills for working with a BLT project.

  2. Ensure that your computer meets the minimum installation requirements (and then install the required applications). See the System Requirements.

  3. Request access to organization that owns the project repo in GitHub (if needed).

  4. Fork the project repository in GitHub.

  5. Request access to the Acquia Cloud Environment for your project (if needed).

  6. Setup a SSH key that can be used for GitHub and the Acquia Cloud (you CAN use the same key).

    1. Setup GitHub SSH Keys
    2. Setup Acquia Cloud SSH Keys
  7. Clone your forked repository. By default, Git names this "origin" on your local.

    $ git clone [email protected]:<account>/#GITHUB_PROJECT.git
    
  8. To ensure that upstream changes to the parent repository may be tracked, add the upstream locally as well.

    $ git remote add upstream [email protected]:#GITHUB_ORG/#GITHUB_PROJECT.git
    
  9. Update your the configuration located in the /blt/blt.yml file to match your site's needs. See configuration files for other important configuration files.


Setup Local Environment.

BLT provides an automation layer for testing, building, and launching Drupal 8 applications. For ease when updating codebase it is recommended to use Drupal VM. If you prefer, you can use another tool such as Docker, DDEV, Docksal, Lando, (other) Vagrant, or your own custom LAMP stack, however support is very limited for these solutions.

Lando

  1. Run lando start.
  2. Ensure every multisite database exists either through an SQL client or executing lando drush sql:create for each multisite.
  3. Set up the application:
    1. For first-time setup, run lando blt setup.
    2. For existing setups, run lando blt drupal:sync:all-sites.
      1. Note: this will discard active configuration!
  4. Edit sites.local.php to route requests to multisite directories:
    $sites['mysite.uiowa.lndo.site'] = 'mysite';
    
  5. Profit.

Runserver

  1. Install Homebrew.
  2. Install PHP 7.2 via Homebrew.
    brew install [email protected]
    
  3. Install MariaDB
    brew install mariadb
    
  4. Start MariaDB.
    brew services start mariadb
    
  5. Install Composer dependencies.
    $ composer install
    
  6. Route the site of your choice in sites.local.php.
    $sites['8888.localhost'] = 'mysite';
    
  7. Configure local.settings.php to override Lando defaults.
  8. Start the built-in PHP server.
    $ drush -l mysite rs --dns
    

Drupal VM (Vagrant)

  1. Install Composer dependencies. After you have forked, cloned the project and setup your blt.yml file install Composer Dependencies. (Warning: this can take some time based on internet speeds.)

    $ composer install
    
  2. Setup VM. Setup the VM with the configuration from this repositories configuration files.

    $ vagrant up
    
  3. Setup a local blt alias. If the blt alias is not available use this command outside and inside vagrant (one time only).

    $ composer run-script blt-alias
    
  4. SSH into your VM. SSH into your localized Drupal VM environment automated with the BLT launch and automation tools.

    $ vagrant ssh
    
  5. Setup a local Drupal site with an empty database. Use BLT to setup the site with configuration. If it is a multisite you can identify a specific site.

      $ blt setup
    

    or

    $ blt setup --site=[sitename]
    
  6. Log into your site with drush. Access the site and do necessary work at #LOCAL_DEV_URL by running the following commands.

    $ cd docroot
    $ drush uli
    

Other Local Setup Steps

  1. Set up frontend build and theme. By default BLT sets up a site with the lightning profile and a cog base theme. You can choose your own profile before setup in the blt.yml file. If you do choose to use cog, see Cog's documentation for installation. See BLT's Frontend docs to see how to automate the theme requirements and frontend tests. After the initial theme setup you can configure blt/blt.yml to install and configure your frontend dependencies with blt setup.

  2. Pull Files locally. Use BLT to pull all files down from your Cloud environment.

    $ blt drupal:sync:files
    
  3. Sync the Cloud Database. If you have an existing database you can use BLT to pull down the database from your Cloud environment.

    $ blt sync
    

Resources

Additional BLT documentation may be useful. You may also access a list of BLT commands by running this:

$ blt

Note the following properties of this project:

  • Primary development branch: #GIT_PRIMARY_DEV_BRANCH
  • Local environment: #LOCAL_DEV_SITE_ALIAS
  • Local site URL: #LOCAL_DEV_URL

Working With a BLT Project

BLT projects are designed to instill software development best practices (including git workflows).

Our BLT Developer documentation includes an example workflow.

Important Configuration Files

BLT uses a number of configuration (.yml or .json) files to define and customize behaviors. Some examples of these are:

  • blt/blt.yml (formerly blt/project.yml prior to BLT 9.x)
  • blt/local.blt.yml (local only specific blt configuration)
  • box/config.yml (if using Drupal VM)
  • drush/sites (contains Drush aliases for this project)
  • composer.json (includes required components, including Drupal Modules, for this project)

Resources

uiowa01's People

Contributors

pyrello avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.