2017 © Pedro PelĂĄez
 

project internetdagarna

Automatisk hantering för WordPress-projekt

image

elseif/internetdagarna

Automatisk hantering för WordPress-projekt

  • Tuesday, December 20, 2016
  • by elseif
  • Repository
  • 3 Watchers
  • 5 Stars
  • 5 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Automatisk hantering för WordPress-projekt

WordCamp Internetdagarna, Waterfront Stockholm, 2016, (*1)

Denna kodbas Àr framtagen för presentationen pÄ WordCamp Stockholm 2016., (*2)

Koden ska ses som ett "proof-of-concept" pÄ en strukturerad miljö för utveckling och distribution av WordPress-projekt., (*3)

Denna presentation sammanfattas i slides hÀr!, (*4)

Syftet Àr att ge en inblick och förstÄelse för hur utveckling med WordPress kan automatiseras och göras med kontrollerat upplÀgg med versionshantering, pakethantering, deployment och test., (*5)

LĂ€nkar efter presentationen

NÄgra frÄgor kring presentationen visade pÄ intressanta uppslag:, (*6)

Roots: Trellis - Vagrantmiljö, Bedrock - paketstruktur, Sage - tema Laravel Forge, funkar fint för denna typ av WordPress-upplÀgg., (*7)

Grundkrav

  • PHP
  • Composer
  • Git
  • Virtual Box
  • Vagrant

Option

  • Node, npm för testcase i CasperJS
  • En VPS att leverera till

Snabba steg

Om du vill fÄ detta att rulla med snabba steg:, (*8)

  • composer create-project elseif/internetdagarna
  • cd internetdagarna
  • cp .env.example .env
  • (modifiera Homestead.yaml rad 15 till ditt projekts sökvĂ€g)
  • vagrant up
  • (modifiera hosts-filen med: 192.168.10.13 => internetdagarna.dev)
  • vendor/bin/dep initial dev
  • (surfa till http://internetdagarna.dev)

Mer om varje del nedan!, (*9)

Versionshantering

Git anvÀnds för versionshantering. Installera Git pÄ din dator! Projektet ligger pÄ Github med licens MIT., (*10)

Pakethantering

Vi anvÀnder Composer, styrfilen för externa paket finns definierade i composer.json., (*11)

composer install

Ta för vana att köra composer update för att dina externa paket ska vara uppdaterade., (*12)

Utvecklingsmiljön

Vagrant med Virtual Box, (*13)

Homstead Laravel, (*14)

composer update
composer require laravel/homestead --dev
php vendor/bin/homestead make

Redigera Homestead.yaml till med dina instÀllningar. Uppdatera /etc/hosts (OSX), (*15)

vagrant up

KrÄnglar miljön? Starta om Vagrantboxen:, (*16)

vagrant reload --provision

Deployment

Vi anvÀnder PHP Deployer och WP CLI för att initiera ny webbplats., (*17)

vendor/bin/dep initwp dev

Initierar WordPress-installation i din Vagrantbox samt sÀtter ett testtema som aktivt., (*18)

Logga in i wp-admin: http://internetdagarna.dev/wp/wp-admin med admin och lösenord admin., (*19)

vendor/bin/dep testdata dev

Fyller din WordPress-webbplats med testdata., (*20)

Test

Vi anvÀnder PHPUnit och i detta fall ett mycket enkelt UI-test med hjÀlp av CasperJS som genererar en bild pÄ testet. CaperJS krÀver Node i global installation., (*21)

Selenium (Javabaserat) Àr ett annat verktyg för UI-test men eftersom vi ofta ÀndÄ anvÀnder Node sÄ Àr CasperJS nÀrmare till hands och dessutom betydligt enklare., (*22)

Installationsexempel:, (*23)

sudo npm install -g phantomjs
sudo npm install -g casperjs
vendor/bin/dep tests dev

Drar igÄng UI-test i din Vagrantbox., (*24)

Deployment Production

vendor/bin/dep deploy production

Skapar en ny release pÄ produktionsservern. Grundkraven Àr att destinationen har Git och Composer installerat. Vidare behöver en shared/.env samt installerad databas. Det gÄr att initiera WordPressinstallationen med tidigare startup, ex:, (*25)

vendor/bin/dep startup production

Observera att databas och .env mÄste finnas pÄ servern. Kom ihÄg att Àndra admin-lösenordet!, (*26)

The Versions