SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
10 tips for
continuous
integration
DrupalSouth Auckland
17 Nov 2017
Hello
My name is...
Vladimir Roudakov
Brisbane, Australia
Automation /
Development /
Training
@VladimirAus
Audience
Agenda
● CI/CD
● Services
● Preparation
● 10 tips
● More...
Continuous
Integration
● development practice
● periodic commits to
shared repository
● can be verified by an
automated build
Continuous
Integration
GOAL
detect problems early
Continuous Delivery
● approach
● teams produce
software in short cycles
Continuous Delivery
GOAL
the software can be reliably
released at any time
Services
● Code GIT repository
● CI runner
Code GIT repository
CI RunnerServices
What to know
more?
Disclaimer
Praparation
Services
Praparation
Services
Praparation
Images
● Operating system
● Official images on
Docker hub
● Custom images
Praparation
Variables
● Name your variables
accordingly
● Secure if possible
Praparation
Cache
● Sharing between
images
● File sharing
● Database sharing
Praparation
Dependencies
● composer
● npm
Praparation
Services
● Database
● Testing
● Others?
1. Renewals
● Certificates
● Subscriptions
● Renewals
1. Certificates
1. Certificates
1. Certificates
2. Linting
Standard
● PHP Code sniffer
● ES / Javascript linting
● SASS Lint / CSS lint
2. Linting
Additional
● D8 configuration
● Naming conventions
● Shell configuration
3. Code Quality
● Complexity
● Violations
3. Code Quality
3. Code Quality
3. Code Quality
4. Unit testing
● PHPUnit was added to
Drupal 8
● SimpleTest is still
supported but is
deprecated
What to know
more?
5. Drupal Installation
● Test profile installation
● Test db update
● Test config update
● Test dependencies
● Test core update
● Test modules update
Make sure your profile +
modules configuration still
works
6. End to end testing
● User like testing
● Selenium based stack
● Mimics user
● Based on user story
● Provides
comprehensive report
● Run one test / all /
conditional
What to know
more?WordCamp Brisbane 2017
https://2017.brisbane.wordcamp.org/session/testi
ng-any-day-guide-to-end-to-end-test-driven-word
press-projects/
7. Updates
● Environment update
● OS
● PHP / Apache / MySQL
● Drupal Updates
● TIP: Fail on security
updates
● Composer Updates
8. Notifications
● Email
● Chat
● Issue tracker
9. Artefacts
Logs
● Logs
● Release notes
● Test Reports
9. Artefacts
Release notes
● Logs
● Release notes
● Test Reports
9. Artefacts
Test reports
● Logs
● Release notes
● Test Reports
What to know
more?
10. Deployment
● Push to your
environment
● Spin off new
environment
Consideration
● Security
● Cache
● Limitations
Consideration
Security
● Keep keys private
● Don’t check in
passwords
What to know
more?
In conclusion
GOALS
CI: detect problems early
CD: the software can be
reliably released at any
time
Save time
Go automate!
Questions?
Hustle me
Vladimir Roudakov
vladimir@tomato-elephant-studio.com
@VladimirAus
References
● https://en.wikipedia.org/wiki/Continuous_delivery
● http://www.phpmetrics.org/
● https://phpunit.de/
● https://codeclimate.com/
● https://medium.com/netflix-techblog/developer-experience-lessons-oper
ating-a-serverless-like-platform-at-netflix-a8bbd5b899a0
● https://www.drupal.org/docs/8/phpunit/running-phpunit-tests
Services
● https://gitlab.com/
● https://bitbucket.org/product/features/pipelines
● https://docs.acquia.com/acquia-cloud/cd/pipelines
● http://try.drone.io/
● https://circleci.com/
● https://codeship.com/
● https://github.com/
● https://travis-ci.org/
● https://aws.amazon.com/devops/continuous-delivery/
● https://papertrailapp.com/
● https://www.sumologic.com/

Mais conteúdo relacionado

Mais procurados

네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐
NAVER D2
 

Mais procurados (20)

An introduction to Node.js application development
An introduction to Node.js application developmentAn introduction to Node.js application development
An introduction to Node.js application development
 
Opensource pnp container based waf
Opensource pnp container based wafOpensource pnp container based waf
Opensource pnp container based waf
 
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo MarketplaceNuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
 
#2 Hanoi Magento Meetup - Part 2: Knockout JS
#2 Hanoi Magento Meetup - Part 2: Knockout JS#2 Hanoi Magento Meetup - Part 2: Knockout JS
#2 Hanoi Magento Meetup - Part 2: Knockout JS
 
PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes c...
PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes c...PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes c...
PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes c...
 
Ahmadabad mule soft_meetup_05june2021_mule4_automate mulesoft on prem servers...
Ahmadabad mule soft_meetup_05june2021_mule4_automate mulesoft on prem servers...Ahmadabad mule soft_meetup_05june2021_mule4_automate mulesoft on prem servers...
Ahmadabad mule soft_meetup_05june2021_mule4_automate mulesoft on prem servers...
 
Best practises for HTML5 servers (Devaamo Summit 2012)
Best practises for HTML5 servers (Devaamo Summit 2012)Best practises for HTML5 servers (Devaamo Summit 2012)
Best practises for HTML5 servers (Devaamo Summit 2012)
 
Nuxeo World Session: Scaling Nuxeo Applications
Nuxeo World Session: Scaling Nuxeo ApplicationsNuxeo World Session: Scaling Nuxeo Applications
Nuxeo World Session: Scaling Nuxeo Applications
 
TDD with Spock @xpdays_ua
TDD with Spock @xpdays_uaTDD with Spock @xpdays_ua
TDD with Spock @xpdays_ua
 
Introducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management PlatformIntroducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management Platform
 
GUNA_CV
GUNA_CVGUNA_CV
GUNA_CV
 
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
 
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
 
What grunt?
What grunt?What grunt?
What grunt?
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
IoT and developer chances
IoT and developer chancesIoT and developer chances
IoT and developer chances
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App Engine
 
네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐네이버 오픈세미나 백엔드_아키텍쳐
네이버 오픈세미나 백엔드_아키텍쳐
 

Semelhante a 10 tips for continuous integration

Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupal
smithmilner
 

Semelhante a 10 tips for continuous integration (20)

Continuous operations in AWS
Continuous operations in AWSContinuous operations in AWS
Continuous operations in AWS
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Build and release iOS apps using Fastlane tools
Build and release iOS apps using Fastlane toolsBuild and release iOS apps using Fastlane tools
Build and release iOS apps using Fastlane tools
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
 
Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019
Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019
Pivotal Greenplum Cloud Marketplaces - Greenplum Summit 2019
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Continuous Development Pipeline
Continuous Development PipelineContinuous Development Pipeline
Continuous Development Pipeline
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best Pracitces
 
Cloud-Native .NET
Cloud-Native .NETCloud-Native .NET
Cloud-Native .NET
 
Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupal
 
StarWest 2019 - End to end testing: Stupid or Legit?
StarWest 2019 - End to end testing: Stupid or Legit?StarWest 2019 - End to end testing: Stupid or Legit?
StarWest 2019 - End to end testing: Stupid or Legit?
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
Kenzan Spinnaker Meetup
Kenzan Spinnaker MeetupKenzan Spinnaker Meetup
Kenzan Spinnaker Meetup
 
Testing Rest with Spring by Kostiantyn Baranov (Senior Software Engineer, Gl...
Testing Rest with Spring  by Kostiantyn Baranov (Senior Software Engineer, Gl...Testing Rest with Spring  by Kostiantyn Baranov (Senior Software Engineer, Gl...
Testing Rest with Spring by Kostiantyn Baranov (Senior Software Engineer, Gl...
 
DrupalCon 2014: A Perfect Launch, Every Time
DrupalCon 2014: A Perfect Launch, Every TimeDrupalCon 2014: A Perfect Launch, Every Time
DrupalCon 2014: A Perfect Launch, Every Time
 
Selenium Online Training.pdf
Selenium Online Training.pdfSelenium Online Training.pdf
Selenium Online Training.pdf
 

Mais de Vladimir Roudakov

Mais de Vladimir Roudakov (20)

What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)
What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)
What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)
 
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
 
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
 
Bootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap tools
Bootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap toolsBootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap tools
Bootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap tools
 
Drupal Brisbane Meetup :: Drupal in late 2017-2018
Drupal Brisbane Meetup :: Drupal in late 2017-2018Drupal Brisbane Meetup :: Drupal in late 2017-2018
Drupal Brisbane Meetup :: Drupal in late 2017-2018
 
Testing any day: guide to end to end test driven WordPress projects
Testing any day: guide to end to end test driven WordPress projectsTesting any day: guide to end to end test driven WordPress projects
Testing any day: guide to end to end test driven WordPress projects
 
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projectsDrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
 
DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.js
DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.jsDrupalCon Dublin 2016 - Automated browser testing with Nightwatch.js
DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.js
 
20160905 - BrisJS - nightwatch testing
20160905 - BrisJS - nightwatch testing20160905 - BrisJS - nightwatch testing
20160905 - BrisJS - nightwatch testing
 
Brisbane Drupal meetup 2016 Apr - whats new in Drupal 8.1
Brisbane Drupal meetup   2016 Apr - whats new in Drupal 8.1Brisbane Drupal meetup   2016 Apr - whats new in Drupal 8.1
Brisbane Drupal meetup 2016 Apr - whats new in Drupal 8.1
 
Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8
Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8
Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8
 
Brisbane Drupal meetup - 2016 Jan - Drupal hostings
Brisbane Drupal meetup - 2016 Jan - Drupal hostingsBrisbane Drupal meetup - 2016 Jan - Drupal hostings
Brisbane Drupal meetup - 2016 Jan - Drupal hostings
 
Bootstrap. December 2015 [Brisbane Drupal meetup]
Bootstrap. December 2015 [Brisbane Drupal meetup] Bootstrap. December 2015 [Brisbane Drupal meetup]
Bootstrap. December 2015 [Brisbane Drupal meetup]
 
DrupalCamp Melbourne 2015. Bootstrap: framework and theme.
DrupalCamp Melbourne 2015. Bootstrap: framework and theme.DrupalCamp Melbourne 2015. Bootstrap: framework and theme.
DrupalCamp Melbourne 2015. Bootstrap: framework and theme.
 
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. June 2015 [Brisbane Drupal meetup]
Drupal 8 update. June 2015 [Brisbane Drupal meetup]Drupal 8 update. June 2015 [Brisbane Drupal meetup]
Drupal 8 update. June 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. May 2015 [Brisbane Drupal meetup]
Drupal 8 update. May 2015 [Brisbane Drupal meetup]Drupal 8 update. May 2015 [Brisbane Drupal meetup]
Drupal 8 update. May 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. March 2015 [Brisbane Drupal meetup]
Drupal 8 update. March 2015 [Brisbane Drupal meetup]Drupal 8 update. March 2015 [Brisbane Drupal meetup]
Drupal 8 update. March 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
 
Drupal LMS. February 2015 [Brisbane Drupal meetup]
Drupal LMS. February 2015 [Brisbane Drupal meetup]Drupal LMS. February 2015 [Brisbane Drupal meetup]
Drupal LMS. February 2015 [Brisbane Drupal meetup]
 

Último

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

10 tips for continuous integration