SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
WordPress CI
WordPressで行う継続的インテグレーションのススメ
自己紹介
キタジマタカシ
長崎のフリーランスWebデザ
イナー/プログラマー。
Plugin:「MW WP Form」
「Smart Custom Fields」
Theme :「Kotetsu」「Habakiri」
Toro_Unit
(占部 紘)
長野県ではたらくフロン
トエンドエンジニア。
Plugin: 「Custom Post Type Permalinks」
「 Simple Post Type Permalinks」
堀家隆宏
Engineer at Digitalcube Co. Ltd.
4.2 Core Contributor
Plugin:「Trust Form」
「Simpe GA Ranking」
目標
CIを回すメリットを理解してもらう
WordPressでCIを行う方法を
ハンズオンを通して持ち帰ってもらう
従来の開発における問題
コードを書く
ブラウザでテスト
コードを書く
エラーが発生
コードを見なおして修正
完成
WordPress.orgにあげて公開
ここから先は
プラグインメンテの長い旅路
追加開発やバグ修正を
繰り返した結果…
バージョンを上げるたびに
複雑になっていくコード
忘れてしまう仕様
こんな機能つくったっけ
そしていつの日か…
あなたのプラグイン、
バージョンあげたらバグったわよ!!
申し訳ございません!!
こうならないためにどうするべきか?
テスト仕様書をつくる
テスト仕様書をつくる
ドキュメント書くのは大変。
書きたくない。メンテ出来ない
継続的インテグレーション
アプリケーション開発において品質改善や納期の短縮のための取り組みを
継続して実行していくこと
開発
テスト
Git、Svnへの反映
デプロイ
開発
テスト
Git、Svnへの反映
デプロイ
開発
この流れを
自動化する
ことが重要
テスト駆動開発
最初にテストを書き(これをテストファーストと言う)、そのテストが動作す
る必要最低限な実装をとりあえず行った後、コードを洗練させる
(wikipedia引用)
https://phpunit.de/
PHPUnit
PHPUnit
・PHPのテスティングフレームワーク
・ユニットテストを記述できる
・多機能で老舗
テストコードを書く
プラグインのコードを書く
phpunitコマンドでテストを実行
PHPUnitを使った開発の流れ
テストケース
アサーション
テストの期待値と実際の結果を比較して
テストの成否を判定するメソッド
アサーション
・第1引数があるべき値
・第2引数が実際の実行結果
アサーション
https://phpunit.de/manual/current/ja/
appendixes.annotations.html
アノテーション
PHPのコメントの形式で
テスト実行時のオプションを記述
アノテーション
・「@アノテーション名 引数」の形式で書く
・@afterだとテストケースクラス内の各テスト
メソッドを実行した後に呼ぶメソッドを指定
アノテーション
https://phpunit.de/manual/current/ja/
appendixes.annotations.html
WordPressで
PHPUnitを使う
WP-CLI
wp scaffold plugin <プラグイン名>
自動でテストに対応した構成を作る
WP_UnitTestCaseというクラスを継承
テストの例
タイトルがHello!の投稿を作成
投稿のタイトルがHello!が返るかテスト
テストの例
[hello_world]というショートコードを実行
ショートコードの実行結果を検証
テストの例
テストの前にパーマリンクを設定
・go_toメソッドで/feedヘアクセス
・is_feedでtrueが返るか検証
Test as a Document
Test as a Document
テストコードをメンテすることで
同時にドキュメントにもなる
・PHPUnitによるテストを継続的に実施することで品質が担保される
・ドキュメントの代わりにもなるので仕様を忘れない
Travis CI
https://travis-ci.org/
Travis CI
・GitHubのアカウントがあれば使用可能なCIサービス
・GitHubへのpush時にhookしてテストを実行
・テストの設定を.travis.ymlに記載
.travis.yml
複数のPHP及びWordPressのバージョンでテストが可能
実行結果
実行結果
テストを実行して通ってますよという証
GitHub上にbadgeを追加
・pushのタイミングでテストを通すことが担保できる
・PHP及びWordPressの複数バージョンでの自動テスト
・テストして品質が担保されていることをGitHub上に記載できる
Travis CIのメリット
デプロイの自動化
通常のデプロイ
サーバへファイルのアップ
通常のデプロイ
サーバへファイルのアップ
データベースの置換
通常のデプロイの問題点
・手作業による作業の煩雑さ
・データベースの置換で心が折れる
WordMove
https://github.com/welaika/wordmove
WordMove
・Rubyで作られたWordPress専用のデプロイツール
・DB内のURLをステージングと本番で自動で置換
・Movefileというファイルにデプロイの情報を記述
Movefile
続きはハンズオンで!

Contenu connexe

Tendances

とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
 

Tendances (20)

PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
 
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
最近のやられアプリを試してみた
最近のやられアプリを試してみた最近のやられアプリを試してみた
最近のやられアプリを試してみた
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えしますA5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 

En vedette

WordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデル
WordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデルWordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデル
WordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデル
Hidekazu Ishikawa
 

En vedette (20)

先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
 
WordPress はどこへ向かう?〜コミュニティが支える未来〜
WordPress はどこへ向かう?〜コミュニティが支える未来〜WordPress はどこへ向かう?〜コミュニティが支える未来〜
WordPress はどこへ向かう?〜コミュニティが支える未来〜
 
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
 
WordCamp Kansai 2015 - 京都大学における WordPress を利用した多言語情報発信と管理運用 #wck2015
WordCamp Kansai 2015 - 京都大学における WordPress を利用した多言語情報発信と管理運用 #wck2015WordCamp Kansai 2015 - 京都大学における WordPress を利用した多言語情報発信と管理運用 #wck2015
WordCamp Kansai 2015 - 京都大学における WordPress を利用した多言語情報発信と管理運用 #wck2015
 
WordCamp Kansai 2015 CI ハンズオン
WordCamp Kansai 2015 CI ハンズオンWordCamp Kansai 2015 CI ハンズオン
WordCamp Kansai 2015 CI ハンズオン
 
WordCamp Kansai 2015 ハンズオン - 踏み出してみよう!翻訳の第一歩 #wck2015
WordCamp Kansai 2015 ハンズオン - 踏み出してみよう!翻訳の第一歩 #wck2015WordCamp Kansai 2015 ハンズオン - 踏み出してみよう!翻訳の第一歩 #wck2015
WordCamp Kansai 2015 ハンズオン - 踏み出してみよう!翻訳の第一歩 #wck2015
 
Learning from theme review requirements
Learning from theme review requirementsLearning from theme review requirements
Learning from theme review requirements
 
Word pressはじめの一歩 テーマ作成ハンズオン
Word pressはじめの一歩 テーマ作成ハンズオンWord pressはじめの一歩 テーマ作成ハンズオン
Word pressはじめの一歩 テーマ作成ハンズオン
 
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
 
オープンデータとWordPress
オープンデータとWordPressオープンデータとWordPress
オープンデータとWordPress
 
WordPress on HHVM + Hack
WordPress on HHVM + HackWordPress on HHVM + Hack
WordPress on HHVM + Hack
 
WordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデル
WordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデルWordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデル
WordCampKansai 2015 公式ディレクトリへの􏰀 テーマ掲載とビジネスモデル
 
WordCamp Kansai 2015 発表資料
WordCamp Kansai 2015 発表資料WordCamp Kansai 2015 発表資料
WordCamp Kansai 2015 発表資料
 
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
 
WordBench京都 9月号:kintone×WordPressハンズオン
WordBench京都 9月号:kintone×WordPressハンズオンWordBench京都 9月号:kintone×WordPressハンズオン
WordBench京都 9月号:kintone×WordPressハンズオン
 
使いやすいWordPressのためのCSSのつくりかた
使いやすいWordPressのためのCSSのつくりかた使いやすいWordPressのためのCSSのつくりかた
使いやすいWordPressのためのCSSのつくりかた
 
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でーWP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
 
組長サイトの作り方
組長サイトの作り方組長サイトの作り方
組長サイトの作り方
 
Fonts around the WordPress
Fonts around the WordPressFonts around the WordPress
Fonts around the WordPress
 
WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...
WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...
WordCamp Kansai 2015 実行委員向け GPL勉強会 | GPL study sessions for WordCamp Kansai 2...
 

Similaire à WordPressで行う継続的インテグレーションのススメ

テーマ・プラグイン 公開のススメ WordCampTokyo2012
テーマ・プラグイン 公開のススメ WordCampTokyo2012テーマ・プラグイン 公開のススメ WordCampTokyo2012
テーマ・プラグイン 公開のススメ WordCampTokyo2012
Hidekazu Ishikawa
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
Takuya Kawabe
 

Similaire à WordPressで行う継続的インテグレーションのススメ (20)

コンテナDojo #4:VSCodeを使ったPodmanコンテナアプリ開発.pdf
コンテナDojo #4:VSCodeを使ったPodmanコンテナアプリ開発.pdfコンテナDojo #4:VSCodeを使ったPodmanコンテナアプリ開発.pdf
コンテナDojo #4:VSCodeを使ったPodmanコンテナアプリ開発.pdf
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
テーマ・プラグイン 公開のススメ WordCampTokyo2012
テーマ・プラグイン 公開のススメ WordCampTokyo2012テーマ・プラグイン 公開のススメ WordCampTokyo2012
テーマ・プラグイン 公開のススメ WordCampTokyo2012
 
SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発SharePoint Framework による Viva Connections アプリの開発
SharePoint Framework による Viva Connections アプリの開発
 
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上
 
Vs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-devVs code conf2020-11-21-extensions-for-microservices-app-dev
Vs code conf2020-11-21-extensions-for-microservices-app-dev
 
introduction
introductionintroduction
introduction
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
 
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
和歌山ITカーニバルAWSハンズオンスライド
和歌山ITカーニバルAWSハンズオンスライド和歌山ITカーニバルAWSハンズオンスライド
和歌山ITカーニバルAWSハンズオンスライド
 
「コードを書かずにコードを産み出す?!」スマホ時代の最先端Web/アプリ制作
「コードを書かずにコードを産み出す?!」スマホ時代の最先端Web/アプリ制作「コードを書かずにコードを産み出す?!」スマホ時代の最先端Web/アプリ制作
「コードを書かずにコードを産み出す?!」スマホ時代の最先端Web/アプリ制作
 
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
 
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
 
The Fastest Possible Way to Develop an Interactive App
The Fastest Possible Way to Develop an Interactive AppThe Fastest Possible Way to Develop an Interactive App
The Fastest Possible Way to Develop an Interactive App
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
 
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
Scale Your Business without Servers
Scale Your Business without ServersScale Your Business without Servers
Scale Your Business without Servers
 

Plus de horike37

AMIMOTO紹介
AMIMOTO紹介AMIMOTO紹介
AMIMOTO紹介
horike37
 
Wpdevmeeting
WpdevmeetingWpdevmeeting
Wpdevmeeting
horike37
 
第7回ゆるふわ勉強会
第7回ゆるふわ勉強会第7回ゆるふわ勉強会
第7回ゆるふわ勉強会
horike37
 
WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料
horike37
 
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
horike37
 

Plus de horike37 (19)

サーバ管理はサーバレスで
サーバ管理はサーバレスでサーバ管理はサーバレスで
サーバ管理はサーバレスで
 
Amazon API Gateway + WordPress
Amazon API Gateway + WordPressAmazon API Gateway + WordPress
Amazon API Gateway + WordPress
 
め組テーマはテーマを捨てる
め組テーマはテーマを捨てるめ組テーマはテーマを捨てる
め組テーマはテーマを捨てる
 
Media Assembly Kitの紹介
Media Assembly Kitの紹介Media Assembly Kitの紹介
Media Assembly Kitの紹介
 
AWS Cloud Roadshow 2014 大阪 LT
AWS Cloud Roadshow 2014 大阪 LTAWS Cloud Roadshow 2014 大阪 LT
AWS Cloud Roadshow 2014 大阪 LT
 
WordPress meats up
WordPress meats upWordPress meats up
WordPress meats up
 
WordCamp Tokyo 2014
WordCamp Tokyo 2014WordCamp Tokyo 2014
WordCamp Tokyo 2014
 
Amazon Kinesisを使用した関連記事配信システム
Amazon Kinesisを使用した関連記事配信システムAmazon Kinesisを使用した関連記事配信システム
Amazon Kinesisを使用した関連記事配信システム
 
WordPress on AWS
WordPress on AWSWordPress on AWS
WordPress on AWS
 
Wc kansai
Wc kansaiWc kansai
Wc kansai
 
AMIMOTO紹介
AMIMOTO紹介AMIMOTO紹介
AMIMOTO紹介
 
Wpdevmeeting
WpdevmeetingWpdevmeeting
Wpdevmeeting
 
Coda
CodaCoda
Coda
 
第7回ゆるふわ勉強会
第7回ゆるふわ勉強会第7回ゆるふわ勉強会
第7回ゆるふわ勉強会
 
WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料WordCampOsaka2012セッション資料
WordCampOsaka2012セッション資料
 
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
 
WordPressアジュール部第1回勉強会
WordPressアジュール部第1回勉強会WordPressアジュール部第1回勉強会
WordPressアジュール部第1回勉強会
 
確認スペシャル!
確認スペシャル!確認スペシャル!
確認スペシャル!
 
Word bench東京lt資料
Word bench東京lt資料Word bench東京lt資料
Word bench東京lt資料
 

WordPressで行う継続的インテグレーションのススメ