Reverse Dictionary - movabletype/mt-dev GitHub Wiki

逆引き辞典

パッケージ+パッチの状態で起動する場合

  1. パッケージをダウンロードして、 archvie以下に置く
  2. パッチをダウンロードして、archive以下に置く
  3. $ vagrant mt-dev up ARCHIVE="MT7-R4605.zip a-patch.zip" のように実行する

mysql に接続する

  1. $ vagrant up ... で、検証のターゲットを先に起動する
  2. $ vagrant mt-dev exec-mysql を実行する

mt-config.cgi なしの状態での、ウィザードからの起動

  1. $ vagrant mt-dev up RECIPE=7.3 WITHOUT_MT_CONFIG_CGI=1
  2. http://192.168.7.25/cgi-bin/mt/mt-wizard.cgi からスタート

ブランチを指定して起動

  1. 基準になるレシピを https://github.com/sakk/mt-infra/tree/master/s3/sakk-qa/movabletype/recipe からダウンロードして、 mt-devの中のrecipeディレクトリに入れる、ファイル名は適当に変えておくとよい
  2. ファイルを編集して branch: develop のようになっているところを編集する
  3. $ vagrant mt-dev up RECIPE=今作ったファイル名(.yamlは除く) で起動する
  4. 検証後、いらなくなったファイルは削除してもよい

LDAP

docker で OpenLDAP を起動する

  1. $ vagrant mt-dev up RECIPE=7.3 DOCKER_COMPOSE_YML_MIDDLEWARES="-f ./mt/mysql.yml -f ./mt/memcached.yml -f ./mt/ldap.yml" な感じで起動する
  2. vagrant mt-dev exec-ldappasswd DOCKER_COMPOSE_YML_MIDDLEWARES="-f ./mt/mysql.yml -f ./mt/memcached.yml -f ./mt/ldap.yml" で、 Melody に対するパスワードを指定する
  3. mt-config.cgi は以下のような感じにする
# LDAP
AuthenticationModule LDAP
LDAPAuthURL ldap://ldap/ou=users,dc=example,dc=com?uid
LDAPAuthBindDN cn=admin,dc=example,dc=com
LDAPAuthPassword secret
LDAPAuthSASLMechanism PLAIN
ExternalUserManagement 1
ExternalGroupManagement 1
ExternalUserSyncFrequency 60
LDAPGroupNameAttribute cn
LDAPGroupIdAttribute entryUUID
LDAPGroupFullNameAttribute description
LDAPGroupMemberAttribute memberUid
LDAPGroupSearchBase ou=groups,dc=example,dc=com
LDAPGroupFilter (objectClass=posixGroup)
LDAPUserIdAttribute entryUUID
LDAPUserEmailAttribute mail
LDAPUserFullNameAttribute givenName
LDAPUserGroupMemberAttribute uid

指定するオプションを省略したい

.env ファイルを利用することができます。

以下のような内容で .env という名前ファイルを作成し、

ARCHIVE=MT7-R4605.zip
RECIPE=mt-plugin-MyAwsomePlugin
MT_CONFIG_CGI=mt-config.cgi-local

以下のように起動することができます。

$ vagrant up
$ # または vagrant up ENV_FILE=.env

tools

run-periodic-tasks

  1. $ vagrant up ... で、検証のターゲットを先に起動する(すでに起動済みなら何もする必要なし)
  2. $ vagrant mt-dev mt-shell CMD='./tools/run-periodic-tasks' を実行する

run-periodic-tasks を常駐させる

「公開キュー」によるパブリッシングのときのよく使われる、run-periodic-tasksの常駐をテストする時

  1. $ vagrant up ... で、検証のターゲットを先に起動する(すでに起動済みなら何もする必要なし)
  2. $ vagrant mt-dev mt-shell CMD='./tools/run-periodic-tasks -daemon' を実行する
    • そのまま、そこでログが表示され続ける。完了したら Ctrl-C で終了する。

rebuild-pages

以下の流れで実行する。

$ vagrant mt-dev mt-shell # これで環境に入る
# cpm install -g Web::Scraper
# mkdir -p local/lib/perl5/LWP/UserAgent
# curl -o local/lib/perl5/LWP/UserAgent/Local.pm https://raw.githubusercontent.com/movabletype/movabletype/master/t/lib/LWP/UserAgent/Local.pm
# perl -Ilocal/lib/perl5 ./tools/rebuild-pages ... # オプションを指定する

テストを実行する

本体部分のテストの場合

docker 環境があれば、 mt-dev を利用しなくても docker のみでも実行できます。

$ cd $MT_HOME
$ docker run --name mt-test -t --rm --entrypoint '' -v $PWD:/mt -w /mt movabletype/test:perl-5.28 prove -j4 -PMySQLPool=MT::Test::Env -It/lib t/*.t

vagrant 環境の場合

$ vagrant mt-dev up UP_ARGS='-d mt' # 任意のオプションをつける
$ vagrant mt-dev mt-shell ARGS="exec mt prove -j4 -PMySQLPool=MT::Test::Env -It/lib t/*.t"

docker 環境の場合

$ make up UP_ARGS='-d mt' # 任意のオプションをつける
$ make mt-shell ARGS="exec mt prove -j4 -PMySQLPool=MT::Test::Env -It/lib t/*.t"
# または
$ docker exec -t mt_mt_1 prove -j4 -PMySQLPool=MT::Test::Env -It/lib t/*.t

リポジトリを更新されたくない

RECIPEで指定した場合には、RECIPEに書かれたリポジトリを自動で更新( git checkout . && git pull )されるのがデフォルトの挙動ですが、 UPDATE_BRANCH=no を指定することでこの挙動をキャンセルすることができます。

$ vagrant mt-dev up RECIPE=7.3 UPDATE_BRANCH=no