Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Automate All the Things
Search
Josh Betz
June 08, 2013
Technology
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Automate All the Things
Josh Betz
June 08, 2013
More Decks by Josh Betz
See All by Josh Betz
WP REST API
joshbetz
0
89
Code Review for Teams
joshbetz
0
58
Hypersonic
joshbetz
1
3.7k
Other Decks in Technology
See All in Technology
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
230
20260930_Gemma4_Hands-on
tsho
0
230
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
310
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
200
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
390
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
400
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
Codex概要
ymiya55
0
400
SREでアラート疲れを 解決しよう!
kairim0
1
200
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
550
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
170
IR Today: Theory, Practice, and Agents
dtunkelang
0
350
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
Ethics towards AI in product and experience design
skipperchong
2
410
Prompt Engineering for Job Search
mfonobong
0
480
First, design no harm
axbom
PRO
2
1.3k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Product Roadmaps are Hard
iamctodd
55
13k
Automating Front-end Workflow
addyosmani
1369
210k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
390
A better future with KSS
kneath
240
18k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Statistics for Hackers
jakevdp
799
230k
Transcript
A WordPress Development Workflow
Josh Betz UW - Madison, 2013 Code Wrangler, Automattic @joshbetz
Develop locally against trunk
git-svn git svn clone -s http://core.svn.wordpress.org git svn rebase
git in git Use a new repository for each theme
or plugin
Automate your Environment
Goal: Quickly set up a dev environment that looks like
a server
My solution: Vagrant + Puppet
Install VirtualBox https://www.virtualbox.org/wiki/Downloads
RVM curl -L https://get.rvm.io | bash -s stable
gem install vagrant Vagrant
Puppet gem install puppet
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant::Config.run do |config| end Vagrantfile config.vm.box = "precise64” config.vm.network :hostonly,
'10.10.4.20' config.vm.provision :puppet, :module_path => "puppet/modules" do |puppet| puppet.manifests_path = "puppet/manifests" puppet.manifest_file = "base.pp" end
Vagrant Boxes http://vagrantbox.es
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
Puppet Script service { 'php5-fpm': ensure => running, require =>
Package['php5-fpm'] } package { 'nginx': ensure => present } service { 'nginx': ensure => running, require => Package['nginx'] } package { 'php5-fpm': ensure => present }
My Files https://github.com/joshbetz/WCMKE-2013-Vagrant-Puppet
Run It vagrant up
Why is this useful?
Automate your Development
Developer Plugin http://wordpress.org/extend/plugins/developer/
Theme Unit Test http://codex.wordpress.org/Theme_Unit_Test
Underscores http://underscores.me/
Thanks!
jbe.me/2f0 Slides