SlideShare a Scribd company logo
Introduction to BLT
Build & Launch Tool
By Srikanth V Mattihalli & Tejasvi C H
Why BLT??
Traditional Project Development
Projects
- Scratch Development
- Different modules / widgets running on various versions
- Code is configured and organized differently using different workflow
- Maintenance and development strategy is different.
- Proper collaboration and Handovers / Documents are required.
- Resources cant be changed between projects
Risks
- Deadline management
- Burnout
Solution
Standard project template and one set of tools for every project which evolved
as Acquia build and launch tool (BLT).
* Standardized template for drupal 8 sites
* set of tools for building testing and deploying
* commands for automating usage of those tools
Consider BLT as module and not as application to be installed globally on your
system.
Minimum Requirements
- Development Environment: LAMP stack that runs Drupal. (DrupalVM,
DevDesktop)
- Dependency Mangement (Composer)
- Version Control (git)
- Deployment Management (CI / CD - Travis CD)
- Automated Testing (Behat, PHPunit)
- Backend Technologies (PHP)
- Frontend Technologies (npm, gulp, SASS)
Creating a new project with BLT
$composer create-project --no-interaction acquia/blt-project my-project
By default, BLT will install sites using the lightning profile. You can change this to
any other core, contributed, or custom profile in your codebase by customizing
blt/blt.yml file.
Directory Structure
Root
├── blt - Contains custom build config files for CI solutions
├── box - Contains DrupalVM Configuration (optional, created by `blt vm`)
├── config - Contains Drupal 8 configuration files
├── drush - Contain drush configuration that is not site or environment specific
├── docroot - The drupal docroot
├── hooks - Contains Acquia Cloud hooks (optional)
├── patches - Contains private patches to be used by composer.json
├── reports - Contains output of automated tests; is .gitignored
├── tests - Contains project-level test files and configuration
├── vendor - Contains built composer dependencies; is .gitignored
blt.yml
project:
machine_name: my-project
prefix: BLT
human_name: 'BLTed 8'
profile:
name: lightning
local:
protocol: http
hostname:
'local.${project.machine_name}.com'
git:
default_branch: master
remotes: { }
drush:
aliases:
remote: '${project.machine_name}.test'
local: self
ci: self
default_alias: '${drush.aliases.local}'
modules:
local:
enable: [dblog, devel, seckit, views_ui]
uninstall: [acquia_connector, shield]
ci:
enable: { }
uninstall: [acquia_connector, shield]
dev:
enable: [acquia_connector, shield]
uninstall: { }
test:
enable: [acquia_connector, shield]
uninstall: [devel, views_ui]
prod:
enable: [acquia_connector, shield]
uninstall: [devel, views_ui]
● blt blt:init:settings
generates settings files docroot/sites/default/settings/local.settings.php
● blt setup
Install Drupal and automatically generate any remaining required files (e.g.,
settings.php, hash salt, etc...):
● Congratulations, you now have a running local Drupal site using BLT!
Next Steps
● Initialize CI integration
Two CI solutions are supported out-of-the-box
➢ Acquia Pipelines
➢ Travis CI
blt recipes:ci:pipelines:init
# OR
blt recipes:ci:travis:init
Other commonly used commands
# list targets
blt
# validate code via phpcs, php lint, composer
validate, etc.
blt validate
# run phpunit tests
blt tests:phpunit:run
# ssh into vm & run behat tests
blt tests:behat:run
# diagnose issues
blt doctor
# build a deployment artifact
blt artifact:build
# build artifact and deploy to git.remotes
blt artifact:deploy
# update BLT
composer update acquia/blt --with-dependencies
# download & require a new project
composer require drupal/ctools:^8.3.0
References
https://www.youtube.com/watch?reload=9&v=qPSwb-6xi74
https://blt.readthedocs.io/en/latest/
Questions??
Srikanth V Mattihalli
https://in.linkedin.com/in/srikanthvmattihalli
https://github.com/srikantmatihali
srikantmatihali@gmail.com
Tejasvi C H
https://in.linkedin.com/in/tejasvi-c-h-a0483b14a
tejasvi2.c.h@gmail.com
About US
Blt  introduction

More Related Content

Similar to Blt introduction (20)

PDF
Drupal 8 improvements for developer productivity php symfony and more
Acquia
 
PDF
Lean Drupal Repositories with Composer and Drush
Pantheon
 
PDF
DevOps: Cooking Drupal Deployment
Gerald Villorente
 
PPTX
Build drupal project based on drush make
永对 陈
 
PDF
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Erich Beyrent
 
PDF
Modernize Your Drupal Development
Chris Tankersley
 
PDF
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
DrupalDay
 
PDF
Working with the AOSP - Linaro Connect Asia 2013
Opersys inc.
 
PDF
Backstage Software Templates for Java Developers
Markus Eisele
 
PDF
Embedded linux build systems
Mender.io
 
PDF
Development Setup of B-Translator
Dashamir Hoxha
 
PDF
Android gradle-build-system-overview
Kevin He
 
PPTX
Настройка окружения для кросскомпиляции проектов на основе docker'a
corehard_by
 
PPT
An introduction to maven gradle and sbt
Fabio Fumarola
 
PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
KEY
Automating Drupal Development: Makefiles, features and beyond
Nuvole
 
PDF
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
melbats
 
PDF
Using Composer with Drupal and Drush
Pantheon
 
PDF
FOSDEM 2017: GitLab CI
OlinData
 
PPTX
Getting started with drupal 8 code
Forum One
 
Drupal 8 improvements for developer productivity php symfony and more
Acquia
 
Lean Drupal Repositories with Composer and Drush
Pantheon
 
DevOps: Cooking Drupal Deployment
Gerald Villorente
 
Build drupal project based on drush make
永对 陈
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Erich Beyrent
 
Modernize Your Drupal Development
Chris Tankersley
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
DrupalDay
 
Working with the AOSP - Linaro Connect Asia 2013
Opersys inc.
 
Backstage Software Templates for Java Developers
Markus Eisele
 
Embedded linux build systems
Mender.io
 
Development Setup of B-Translator
Dashamir Hoxha
 
Android gradle-build-system-overview
Kevin He
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
corehard_by
 
An introduction to maven gradle and sbt
Fabio Fumarola
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
Automating Drupal Development: Makefiles, features and beyond
Nuvole
 
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
melbats
 
Using Composer with Drupal and Drush
Pantheon
 
FOSDEM 2017: GitLab CI
OlinData
 
Getting started with drupal 8 code
Forum One
 

Recently uploaded (20)

PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PPTX
Earn Agentblazer Status with Slack Community Patna.pptx
SanjeetMishra29
 
PDF
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
PDF
Basics of Electronics for IOT(actuators ,microcontroller etc..)
arnavmanesh
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
How Current Advanced Cyber Threats Transform Business Operation
Eryk Budi Pratama
 
PDF
visibel.ai Company Profile – Real-Time AI Solution for CCTV
visibelaiproject
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Earn Agentblazer Status with Slack Community Patna.pptx
SanjeetMishra29
 
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
Basics of Electronics for IOT(actuators ,microcontroller etc..)
arnavmanesh
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
How Current Advanced Cyber Threats Transform Business Operation
Eryk Budi Pratama
 
visibel.ai Company Profile – Real-Time AI Solution for CCTV
visibelaiproject
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Ad

Blt introduction

  • 1. Introduction to BLT Build & Launch Tool By Srikanth V Mattihalli & Tejasvi C H
  • 3. Traditional Project Development Projects - Scratch Development - Different modules / widgets running on various versions - Code is configured and organized differently using different workflow - Maintenance and development strategy is different. - Proper collaboration and Handovers / Documents are required. - Resources cant be changed between projects Risks - Deadline management - Burnout
  • 4. Solution Standard project template and one set of tools for every project which evolved as Acquia build and launch tool (BLT). * Standardized template for drupal 8 sites * set of tools for building testing and deploying * commands for automating usage of those tools Consider BLT as module and not as application to be installed globally on your system.
  • 5. Minimum Requirements - Development Environment: LAMP stack that runs Drupal. (DrupalVM, DevDesktop) - Dependency Mangement (Composer) - Version Control (git) - Deployment Management (CI / CD - Travis CD) - Automated Testing (Behat, PHPunit) - Backend Technologies (PHP) - Frontend Technologies (npm, gulp, SASS)
  • 6. Creating a new project with BLT $composer create-project --no-interaction acquia/blt-project my-project By default, BLT will install sites using the lightning profile. You can change this to any other core, contributed, or custom profile in your codebase by customizing blt/blt.yml file.
  • 7. Directory Structure Root ├── blt - Contains custom build config files for CI solutions ├── box - Contains DrupalVM Configuration (optional, created by `blt vm`) ├── config - Contains Drupal 8 configuration files ├── drush - Contain drush configuration that is not site or environment specific ├── docroot - The drupal docroot ├── hooks - Contains Acquia Cloud hooks (optional) ├── patches - Contains private patches to be used by composer.json ├── reports - Contains output of automated tests; is .gitignored ├── tests - Contains project-level test files and configuration ├── vendor - Contains built composer dependencies; is .gitignored
  • 8. blt.yml project: machine_name: my-project prefix: BLT human_name: 'BLTed 8' profile: name: lightning local: protocol: http hostname: 'local.${project.machine_name}.com' git: default_branch: master remotes: { } drush: aliases: remote: '${project.machine_name}.test' local: self ci: self default_alias: '${drush.aliases.local}' modules: local: enable: [dblog, devel, seckit, views_ui] uninstall: [acquia_connector, shield] ci: enable: { } uninstall: [acquia_connector, shield] dev: enable: [acquia_connector, shield] uninstall: { } test: enable: [acquia_connector, shield] uninstall: [devel, views_ui] prod: enable: [acquia_connector, shield] uninstall: [devel, views_ui]
  • 9. ● blt blt:init:settings generates settings files docroot/sites/default/settings/local.settings.php ● blt setup Install Drupal and automatically generate any remaining required files (e.g., settings.php, hash salt, etc...): ● Congratulations, you now have a running local Drupal site using BLT!
  • 10. Next Steps ● Initialize CI integration Two CI solutions are supported out-of-the-box ➢ Acquia Pipelines ➢ Travis CI blt recipes:ci:pipelines:init # OR blt recipes:ci:travis:init
  • 11. Other commonly used commands # list targets blt # validate code via phpcs, php lint, composer validate, etc. blt validate # run phpunit tests blt tests:phpunit:run # ssh into vm & run behat tests blt tests:behat:run # diagnose issues blt doctor # build a deployment artifact blt artifact:build # build artifact and deploy to git.remotes blt artifact:deploy # update BLT composer update acquia/blt --with-dependencies # download & require a new project composer require drupal/ctools:^8.3.0