SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Tipy a triky, best practices,
deployment, testování
Radim Klaška, Morpht.com
Nebojte se příkazové řádky
● Rychlejší
● Jednoduché specializované nástroje
● Programy se nesnaží být chytřejší než uživatelé
● Velký potenciál automatizace
Operační systém
● Mac / Linux
● Windows: https://git-scm.com/downloads
Správa verzí
● git: https://git-scm.com
● alternativy SVN, Bazaar
● ale použijte git ;-)
● Git interaktivně v prohlížeči: https://try.github.io
● časté omyly: http://ohshitgit.com
● Workflow:
https://www.atlassian.com/git/tutorials/comparing-workf
lows
Drush
● Dokumentace: http://www.drush.org
● Dostupné příkazy s ukázkami: https://drushcommands.com/
● Příklady:
○ drush dl drupal
○ drush dl token
○ drush en token
○ drush en -y views_ui
○ cca
● https://github.com/drush-ops/drush/blob/master/examples
/example.bashrc
Drupal Console
● https://drupalconsole.com/
● Dokumentace:
https://hechoendrupal.gitbooks.io/drupal-console/conten
t/en/index.html
● Příklady:
○ drupal generate:theme
○ drupal generate:module
○ drupal cr
Composer
● https://getcomposer.org/
● spravuje závislosti
○ globálně (drush, drupal console, behat...)
○ v rámci projektu
● Příklady:
○ composer global require drush/drush:8.x
○ composer global require drupal/console:@stable
○ composer global update
○ composer update
Composer
● https://getcomposer.org/
● spravuje závislosti
○ globálně (drush, drupal console, behat...)
○ v rámci projektu
● Příklady:
○ composer global require drush/drush:8.x
○ composer global require drupal/console:@stable
○ composer global update
○ composer update
Frontendisti
● bundle check
● commpas watch
● drush radix "My Subtheme" --bootswatch=cerulean"
Osvědčené postupy
● Vše v git repozitáři
● Drupal je v rootu repozitáře, nebo v /docroot
● Všechen kód spravovaný lokálně
● hook_unpdate_N -
https://www.drupal.org/project/hook_update_deploy_tools
● Příklad:
○ https://pantheon.io/ (dev&test zdarma)
○ http://getdevshop.com/ (opensource na vlastnim serveru)
Osvědčené postupy
“Novinky”
● composer based builds
● žádný contrib kód v repozitáři
● composer.json definuje co je třeba
○ nejen drupal.org!
● další konfigurace projektu může být přiložena také
○ testy!
Doporučené postupy
Možnosti
● Git Hooks
○ pre-commit: Checks for Drupal coding standards compliance
○ commit-msg: Check for proper formatting and syntax
● Testing Framework
● Behat
● PHPUnit
● Executing tests and validating code
● Building dependencies
Možnosti
● Management of Drupal core, contrib, and third party
libraries via Composer
● Building front end assets. E.g, via gulp, npm, bower,
etc.
● Continuous Integration & Deployment
● Travis CI
● GitHub
Jak na to
● Acquia Build and Launch Tool:
https://github.com/acquia/blt
● Příklad: https://github.com/acquia/lightning
● Hosting s podporou composer buildu?
● Co když je contrib/package odstraněn? (Build fail)
Ukázka BLT
Dotazy
@radimklaska / radim@klaska.net
Tipy a triky, best practices,
deployment, testování
Radim Klaška, Morpht.com

Mais conteúdo relacionado

Semelhante a Tipy a triky, best practices, deployment, testování

Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8Radim Klaška
 
Představení Drupalu 8
Představení Drupalu 8Představení Drupalu 8
Představení Drupalu 8Radim Klaška
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devuVašek Purchart
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Péhápkaři
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automationOndřej Machulda
 
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiLex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiDevelcz
 
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...Vojtěch Kusý
 
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comJak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comWebScience1
 
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & MicrosevicesČtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & MicrosevicesCtvrtkoncz
 
Google Apps Script Training
Google Apps Script TrainingGoogle Apps Script Training
Google Apps Script TrainingVáclav VESELÝ
 
Proč používat GitHub?
Proč používat GitHub?Proč používat GitHub?
Proč používat GitHub?Dominik Salvet
 
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]Vašek Purchart
 
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOSPavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOSmdevtalk
 
WordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčBrilo Team
 
Vlastimil Krejčíř - Systémový pohled na software Archivematica
Vlastimil Krejčíř - Systémový pohled na software ArchivematicaVlastimil Krejčíř - Systémový pohled na software Archivematica
Vlastimil Krejčíř - Systémový pohled na software ArchivematicaLTP-portal-cz
 
Jak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátoraJak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátoraMichal Blažek
 
VersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeVersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeBorek Bernard
 

Semelhante a Tipy a triky, best practices, deployment, testování (20)

Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8
 
Představení Drupalu 8
Představení Drupalu 8Představení Drupalu 8
Představení Drupalu 8
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devu
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automation
 
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiLex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
 
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
 
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comJak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
 
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & MicrosevicesČtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
 
Google Apps Script Training
Google Apps Script TrainingGoogle Apps Script Training
Google Apps Script Training
 
Proč používat GitHub?
Proč používat GitHub?Proč používat GitHub?
Proč používat GitHub?
 
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
Continuous integration pro Symfony/PHP aplikaci s Dockerem v GitLabu [CZ]
 
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOSPavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
 
WordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin Hlaváč
 
Vlastimil Krejčíř - Systémový pohled na software Archivematica
Vlastimil Krejčíř - Systémový pohled na software ArchivematicaVlastimil Krejčíř - Systémový pohled na software Archivematica
Vlastimil Krejčíř - Systémový pohled na software Archivematica
 
Implementace systemu HIPS
Implementace systemu HIPSImplementace systemu HIPS
Implementace systemu HIPS
 
Jak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátoraJak může PPCéčkař zastoupit programátora
Jak může PPCéčkař zastoupit programátora
 
VersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeVersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépe
 

Tipy a triky, best practices, deployment, testování

  • 1. Tipy a triky, best practices, deployment, testování Radim Klaška, Morpht.com
  • 2. Nebojte se příkazové řádky ● Rychlejší ● Jednoduché specializované nástroje ● Programy se nesnaží být chytřejší než uživatelé ● Velký potenciál automatizace
  • 3. Operační systém ● Mac / Linux ● Windows: https://git-scm.com/downloads
  • 4. Správa verzí ● git: https://git-scm.com ● alternativy SVN, Bazaar ● ale použijte git ;-) ● Git interaktivně v prohlížeči: https://try.github.io ● časté omyly: http://ohshitgit.com ● Workflow: https://www.atlassian.com/git/tutorials/comparing-workf lows
  • 5. Drush ● Dokumentace: http://www.drush.org ● Dostupné příkazy s ukázkami: https://drushcommands.com/ ● Příklady: ○ drush dl drupal ○ drush dl token ○ drush en token ○ drush en -y views_ui ○ cca ● https://github.com/drush-ops/drush/blob/master/examples /example.bashrc
  • 6. Drupal Console ● https://drupalconsole.com/ ● Dokumentace: https://hechoendrupal.gitbooks.io/drupal-console/conten t/en/index.html ● Příklady: ○ drupal generate:theme ○ drupal generate:module ○ drupal cr
  • 7. Composer ● https://getcomposer.org/ ● spravuje závislosti ○ globálně (drush, drupal console, behat...) ○ v rámci projektu ● Příklady: ○ composer global require drush/drush:8.x ○ composer global require drupal/console:@stable ○ composer global update ○ composer update
  • 8. Composer ● https://getcomposer.org/ ● spravuje závislosti ○ globálně (drush, drupal console, behat...) ○ v rámci projektu ● Příklady: ○ composer global require drush/drush:8.x ○ composer global require drupal/console:@stable ○ composer global update ○ composer update
  • 9. Frontendisti ● bundle check ● commpas watch ● drush radix "My Subtheme" --bootswatch=cerulean"
  • 10. Osvědčené postupy ● Vše v git repozitáři ● Drupal je v rootu repozitáře, nebo v /docroot ● Všechen kód spravovaný lokálně ● hook_unpdate_N - https://www.drupal.org/project/hook_update_deploy_tools ● Příklad: ○ https://pantheon.io/ (dev&test zdarma) ○ http://getdevshop.com/ (opensource na vlastnim serveru)
  • 12. “Novinky” ● composer based builds ● žádný contrib kód v repozitáři ● composer.json definuje co je třeba ○ nejen drupal.org! ● další konfigurace projektu může být přiložena také ○ testy!
  • 14. Možnosti ● Git Hooks ○ pre-commit: Checks for Drupal coding standards compliance ○ commit-msg: Check for proper formatting and syntax ● Testing Framework ● Behat ● PHPUnit ● Executing tests and validating code ● Building dependencies
  • 15. Možnosti ● Management of Drupal core, contrib, and third party libraries via Composer ● Building front end assets. E.g, via gulp, npm, bower, etc. ● Continuous Integration & Deployment ● Travis CI ● GitHub
  • 16. Jak na to ● Acquia Build and Launch Tool: https://github.com/acquia/blt ● Příklad: https://github.com/acquia/lightning ● Hosting s podporou composer buildu? ● Co když je contrib/package odstraněn? (Build fail)
  • 19. Tipy a triky, best practices, deployment, testování Radim Klaška, Morpht.com