SlideShare a Scribd company logo
MAGENTO AND CONTINUOUS INTEGRATION
Damian Luszczymak
● Freelancer
● Magento since 2008
● Father of Magento Hackathon
● Firegento Member
● Search, Import / Export
Battle Plan
Coding Guidelines
Programming style is a set of rules or
guidelines used when writing the source code
for a computer program. It is often claimed that
following a particular programming style will
help programmers to read and understand
source code conforming to the style, and help
to avoid introducing errors.
! phpcs !
● PEAR
● PSR-1
● PSR-2
● Zend
● …..
https://github.com/madedotcom/phpcs-magento-r
ules
Git Hook
Check if php syntax is correct
.git/hooks/pre-commit
#!/usr/bin/php
<?php
// Grab all added, copied or modified files into $output array
exec('git diff --cached --name-status --diff-filter=ACM', $output);
foreach ($output as $file) {
$fileName = trim(substr($file, 1));
// We only want to check PHP files
if (pathinfo($fileName,PATHINFO_EXTENSION) == "php") {
$lint_output = array();
// Check syntax with PHP lint
exec("php -l " . escapeshellarg($fileName), $lint_output, $return);
if ($return == 0) {
continue;
} else {
echo implode("n", $lint_output), "n";
exit(1);
}
}
}
exit(0);
Know your IDE
http://magicento.com
PHPUnit → EcomDev
● EcomDev/EcomDev_PHPUnit/
This extension was created especially for resolving this problem and promoting test
driven development practices in Magento developers community. It doesn't change
core files or brake your Magento instalment database, because all the system objects
are replaced during the run-time with the test ones and a separate database
connection is used for tests.
CI
● Jenkins / Hudson
● Codeship.io
● Drone.io
● Cloudbees.com
● Circelci.com
Your journey just started
● Continues Deployment
● Build Notifications
● Github vs. Bitbucket vs. Private server
● Modman
● Composer (no git submodules available :-( )
Twitter / IRC => @daim2k5
info@icyapp.de
Join Firegento ;-)

More Related Content

What's hot

Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Camilo Alvarez Rivera
 
Becoming A Php Ninja
Becoming A Php NinjaBecoming A Php Ninja
Becoming A Php Ninja
Mohammad Emran Hasan
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
ColdFusionConference
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
Aécio Pires
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternselliando dias
 
Plugins 2.0: The Overview
Plugins 2.0: The OverviewPlugins 2.0: The Overview
Plugins 2.0: The Overview
Atlassian
 
DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015
Chris Gates
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
Bo-Yi Wu
 
Squid 3 for windows blogbudaqdegil.blogspot.com
Squid 3 for windows blogbudaqdegil.blogspot.comSquid 3 for windows blogbudaqdegil.blogspot.com
Squid 3 for windows blogbudaqdegil.blogspot.com
Johan Roesdy
 
Continuous intrusion: Why CI tools are an attacker’s best friends
Continuous intrusion: Why CI tools are an attacker’s best friendsContinuous intrusion: Why CI tools are an attacker’s best friends
Continuous intrusion: Why CI tools are an attacker’s best friends
Nikhil Mittal
 
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century SoftwareTesting Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Linuxmalaysia Malaysia
 
TakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian CrenshawTakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian CrenshawEC-Council
 
Anatomy of PHP Shells
Anatomy of PHP ShellsAnatomy of PHP Shells
Anatomy of PHP Shells
Vedran Krivokuca
 
Automate Yo' Self
Automate Yo' SelfAutomate Yo' Self
Automate Yo' Self
John Anderson
 
Composer
ComposerComposer
Windows Attacks AT is the new black
Windows Attacks   AT is the new blackWindows Attacks   AT is the new black
Windows Attacks AT is the new black
Rob Fuller
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
Bo-Yi Wu
 
.Net Hijacking to Defend PowerShell BSidesSF2017
.Net Hijacking to Defend PowerShell BSidesSF2017 .Net Hijacking to Defend PowerShell BSidesSF2017
.Net Hijacking to Defend PowerShell BSidesSF2017
Amanda Rousseau
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
Adam Englander
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applications
IndicThreads
 

What's hot (20)

Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01Introductiontoasp netwindbgdebugging-100506045407-phpapp01
Introductiontoasp netwindbgdebugging-100506045407-phpapp01
 
Becoming A Php Ninja
Becoming A Php NinjaBecoming A Php Ninja
Becoming A Php Ninja
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
 
Plugins 2.0: The Overview
Plugins 2.0: The OverviewPlugins 2.0: The Overview
Plugins 2.0: The Overview
 
DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015DevOops & How I hacked you DevopsDays DC June 2015
DevOops & How I hacked you DevopsDays DC June 2015
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
 
Squid 3 for windows blogbudaqdegil.blogspot.com
Squid 3 for windows blogbudaqdegil.blogspot.comSquid 3 for windows blogbudaqdegil.blogspot.com
Squid 3 for windows blogbudaqdegil.blogspot.com
 
Continuous intrusion: Why CI tools are an attacker’s best friends
Continuous intrusion: Why CI tools are an attacker’s best friendsContinuous intrusion: Why CI tools are an attacker’s best friends
Continuous intrusion: Why CI tools are an attacker’s best friends
 
Testing Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century SoftwareTesting Web Apps With Scripting Language - Mark Rees, Century Software
Testing Web Apps With Scripting Language - Mark Rees, Century Software
 
TakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian CrenshawTakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian Crenshaw
 
Anatomy of PHP Shells
Anatomy of PHP ShellsAnatomy of PHP Shells
Anatomy of PHP Shells
 
Automate Yo' Self
Automate Yo' SelfAutomate Yo' Self
Automate Yo' Self
 
Composer
ComposerComposer
Composer
 
Windows Attacks AT is the new black
Windows Attacks   AT is the new blackWindows Attacks   AT is the new black
Windows Attacks AT is the new black
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
 
.Net Hijacking to Defend PowerShell BSidesSF2017
.Net Hijacking to Defend PowerShell BSidesSF2017 .Net Hijacking to Defend PowerShell BSidesSF2017
.Net Hijacking to Defend PowerShell BSidesSF2017
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applications
 

Similar to Magento and Continuous Integration - Damian Luszczymak

PHP Development Tools
PHP  Development ToolsPHP  Development Tools
PHP Development Tools
Antony Abramchenko
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
Victor S. Recio
 
Bringing-it-all-together-overview-of-rpm-packaging-in-fedora
Bringing-it-all-together-overview-of-rpm-packaging-in-fedoraBringing-it-all-together-overview-of-rpm-packaging-in-fedora
Bringing-it-all-together-overview-of-rpm-packaging-in-fedora
Lalatendu Mohanty
 
Develop At The Speed Of Thought
Develop At The Speed Of ThoughtDevelop At The Speed Of Thought
Develop At The Speed Of Thought
Roy Ganor
 
Creating a phar
Creating a pharCreating a phar
Creating a phar
Adrian Cardenas
 
Php Best Practices
Php Best PracticesPhp Best Practices
Php Best Practices
Ansar Ahmed
 
Php Best Practices
Php Best PracticesPhp Best Practices
Php Best Practices
Ansar Ahmed
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
roskakori
 
R sharing 101
R sharing 101R sharing 101
R sharing 101
Omnia Safaan
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy Code
Rowan Merewood
 
Debugging Python with gdb
Debugging Python with gdbDebugging Python with gdb
Debugging Python with gdb
Roman Podoliaka
 
Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1
drusso
 
Standards: Don't pee in the pool
Standards: Don't pee in the poolStandards: Don't pee in the pool
Standards: Don't pee in the pool
David Yell
 
The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010
Bastian Feder
 
IDE and Toolset For Magento Development
IDE and Toolset For Magento DevelopmentIDE and Toolset For Magento Development
IDE and Toolset For Magento Development
Abid Malik
 

Similar to Magento and Continuous Integration - Damian Luszczymak (20)

PHP Development Tools
PHP  Development ToolsPHP  Development Tools
PHP Development Tools
 
Php
PhpPhp
Php
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 
Bringing-it-all-together-overview-of-rpm-packaging-in-fedora
Bringing-it-all-together-overview-of-rpm-packaging-in-fedoraBringing-it-all-together-overview-of-rpm-packaging-in-fedora
Bringing-it-all-together-overview-of-rpm-packaging-in-fedora
 
Develop At The Speed Of Thought
Develop At The Speed Of ThoughtDevelop At The Speed Of Thought
Develop At The Speed Of Thought
 
Creating a phar
Creating a pharCreating a phar
Creating a phar
 
Php Best Practices
Php Best PracticesPhp Best Practices
Php Best Practices
 
Php Best Practices
Php Best PracticesPhp Best Practices
Php Best Practices
 
Php Ppt
Php PptPhp Ppt
Php Ppt
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
 
Php Ppt
Php PptPhp Ppt
Php Ppt
 
Php documentor
Php documentorPhp documentor
Php documentor
 
Php ppt
Php pptPhp ppt
Php ppt
 
R sharing 101
R sharing 101R sharing 101
R sharing 101
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy Code
 
Debugging Python with gdb
Debugging Python with gdbDebugging Python with gdb
Debugging Python with gdb
 
Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1
 
Standards: Don't pee in the pool
Standards: Don't pee in the poolStandards: Don't pee in the pool
Standards: Don't pee in the pool
 
The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010
 
IDE and Toolset For Magento Development
IDE and Toolset For Magento DevelopmentIDE and Toolset For Magento Development
IDE and Toolset For Magento Development
 

More from Meet Magento Spain

Mobile Commerce y Magento - Jaime Lopez
Mobile Commerce y Magento - Jaime LopezMobile Commerce y Magento - Jaime Lopez
Mobile Commerce y Magento - Jaime LopezMeet Magento Spain
 
SEO - Claves Estratégicas y Operativas - Néstor Tejero
SEO - Claves Estratégicas y Operativas - Néstor TejeroSEO - Claves Estratégicas y Operativas - Néstor Tejero
SEO - Claves Estratégicas y Operativas - Néstor TejeroMeet Magento Spain
 
Fixing Magento Core for Better Performance - Ivan Chepurnyi
Fixing Magento Core for Better Performance - Ivan ChepurnyiFixing Magento Core for Better Performance - Ivan Chepurnyi
Fixing Magento Core for Better Performance - Ivan Chepurnyi
Meet Magento Spain
 
Responsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirl
Responsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirlResponsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirl
Responsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirlMeet Magento Spain
 
One page shops with Magento & Angular Js - Vinai Kopp
One page shops with Magento & Angular Js - Vinai KoppOne page shops with Magento & Angular Js - Vinai Kopp
One page shops with Magento & Angular Js - Vinai Kopp
Meet Magento Spain
 
Hackathon MM14ES - Fabian Blechschmidt
Hackathon MM14ES - Fabian BlechschmidtHackathon MM14ES - Fabian Blechschmidt
Hackathon MM14ES - Fabian Blechschmidt
Meet Magento Spain
 
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerceCómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerceMeet Magento Spain
 
UX: Responsabilidad Creativa en Ecommerce - Luz de León
UX: Responsabilidad Creativa en Ecommerce - Luz de LeónUX: Responsabilidad Creativa en Ecommerce - Luz de León
UX: Responsabilidad Creativa en Ecommerce - Luz de LeónMeet Magento Spain
 
Social Commerce - Fernando Polo
Social Commerce - Fernando Polo Social Commerce - Fernando Polo
Social Commerce - Fernando Polo Meet Magento Spain
 
La importancia del paquete 2.0 - Marc Brayo Seur
La importancia del paquete 2.0 - Marc Brayo SeurLa importancia del paquete 2.0 - Marc Brayo Seur
La importancia del paquete 2.0 - Marc Brayo Seur
Meet Magento Spain
 
Responsive Web Design - Tom Robertshaw
Responsive Web Design - Tom RobertshawResponsive Web Design - Tom Robertshaw
Responsive Web Design - Tom Robertshaw
Meet Magento Spain
 

More from Meet Magento Spain (12)

Mobile Commerce y Magento - Jaime Lopez
Mobile Commerce y Magento - Jaime LopezMobile Commerce y Magento - Jaime Lopez
Mobile Commerce y Magento - Jaime Lopez
 
SEO - Claves Estratégicas y Operativas - Néstor Tejero
SEO - Claves Estratégicas y Operativas - Néstor TejeroSEO - Claves Estratégicas y Operativas - Néstor Tejero
SEO - Claves Estratégicas y Operativas - Néstor Tejero
 
Fixing Magento Core for Better Performance - Ivan Chepurnyi
Fixing Magento Core for Better Performance - Ivan ChepurnyiFixing Magento Core for Better Performance - Ivan Chepurnyi
Fixing Magento Core for Better Performance - Ivan Chepurnyi
 
Responsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirl
Responsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirlResponsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirl
Responsive Vs Mobile Development in Magento - Kimberly Thomas - @MagentoGirl
 
One page shops with Magento & Angular Js - Vinai Kopp
One page shops with Magento & Angular Js - Vinai KoppOne page shops with Magento & Angular Js - Vinai Kopp
One page shops with Magento & Angular Js - Vinai Kopp
 
Hackathon MM14ES - Fabian Blechschmidt
Hackathon MM14ES - Fabian BlechschmidtHackathon MM14ES - Fabian Blechschmidt
Hackathon MM14ES - Fabian Blechschmidt
 
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerceCómo la Gamificación ayuda al Funnel de Venta en #eCommerce
Cómo la Gamificación ayuda al Funnel de Venta en #eCommerce
 
UX: Responsabilidad Creativa en Ecommerce - Luz de León
UX: Responsabilidad Creativa en Ecommerce - Luz de LeónUX: Responsabilidad Creativa en Ecommerce - Luz de León
UX: Responsabilidad Creativa en Ecommerce - Luz de León
 
SEO Magento - Irene Horna
SEO Magento - Irene HornaSEO Magento - Irene Horna
SEO Magento - Irene Horna
 
Social Commerce - Fernando Polo
Social Commerce - Fernando Polo Social Commerce - Fernando Polo
Social Commerce - Fernando Polo
 
La importancia del paquete 2.0 - Marc Brayo Seur
La importancia del paquete 2.0 - Marc Brayo SeurLa importancia del paquete 2.0 - Marc Brayo Seur
La importancia del paquete 2.0 - Marc Brayo Seur
 
Responsive Web Design - Tom Robertshaw
Responsive Web Design - Tom RobertshawResponsive Web Design - Tom Robertshaw
Responsive Web Design - Tom Robertshaw
 

Recently uploaded

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

Magento and Continuous Integration - Damian Luszczymak

  • 2. Damian Luszczymak ● Freelancer ● Magento since 2008 ● Father of Magento Hackathon ● Firegento Member ● Search, Import / Export
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Coding Guidelines Programming style is a set of rules or guidelines used when writing the source code for a computer program. It is often claimed that following a particular programming style will help programmers to read and understand source code conforming to the style, and help to avoid introducing errors.
  • 18. ! phpcs ! ● PEAR ● PSR-1 ● PSR-2 ● Zend ● ….. https://github.com/madedotcom/phpcs-magento-r ules
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Git Hook Check if php syntax is correct .git/hooks/pre-commit #!/usr/bin/php <?php // Grab all added, copied or modified files into $output array exec('git diff --cached --name-status --diff-filter=ACM', $output); foreach ($output as $file) { $fileName = trim(substr($file, 1)); // We only want to check PHP files if (pathinfo($fileName,PATHINFO_EXTENSION) == "php") { $lint_output = array(); // Check syntax with PHP lint exec("php -l " . escapeshellarg($fileName), $lint_output, $return); if ($return == 0) { continue; } else { echo implode("n", $lint_output), "n"; exit(1); } } } exit(0);
  • 26. PHPUnit → EcomDev ● EcomDev/EcomDev_PHPUnit/ This extension was created especially for resolving this problem and promoting test driven development practices in Magento developers community. It doesn't change core files or brake your Magento instalment database, because all the system objects are replaced during the run-time with the test ones and a separate database connection is used for tests.
  • 27. CI ● Jenkins / Hudson ● Codeship.io ● Drone.io ● Cloudbees.com ● Circelci.com
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Your journey just started ● Continues Deployment ● Build Notifications ● Github vs. Bitbucket vs. Private server ● Modman ● Composer (no git submodules available :-( )
  • 34.
  • 35.
  • 36. Twitter / IRC => @daim2k5 info@icyapp.de