Fabric・GitHub・CircleCIを使って、Wordpressのテーマをデプロイします。
今回は、テーマのみをデプロイする方法を記載します。
本記事では、Fabric
とCircleCIのデプロイの設定をメモしています。
GitHubとCircleCIを使ったデプロイ方法は、下記記事を参考にしてください。
» AWS EC2へGitHubとCircleCIを連携して自動でデプロイ: デプロイ
/var/www/html/current
/var/www/html/current/wordpress
/var/www/html/release
ディレクトリが存在しなければ作成/var/www/html/release/yyyymmddhhmmss
ディレクトリを作成yyyymmddhhmmss
ディレクトリに解凍yyyymmddhhmmss
から、/var/www/html/current/wordpress/wp-content/themes/テーマ名
ディレクトリへシンボリックリンクを作成テーマだけを、GitHubで管理していることを前提としています
|
|-- .circle/config
|...
|
|-- fabfile.py
|
|...
|
|-- index.php
|
|...
|
|-- style.css
version: 2
jobs:
deploy:
docker:
- image: circleci/python:2.7-jessie-browsers-legacy
steps:
- checkout
- deploy:
command: |
sudo pip install fabric
fab -f ./fabfile.py
workflows:
version: 2
deploy:
jobs:
- deploy:
filters:
branches:
only: master
from fabric import Connection
import datetime
import subprocess
# configuration
env = {}
env['base_dir'] = '/var/www/html/release'
env['current_dir'] = env['base_dir'] + '/' + datetime.datetime.now().strftime("%Y%m%d%H%M%S")
env['themes_dir'] = '/var/www/html/current/wordpress/wp-content/themes'
env['theme_name'] = 'foo'
env['conn'] = Connection(host='203.0.113.0', user='ubuntu', port=22)
def prepare():
subprocess.call(['tar', 'zcvf', env['theme_name'] + '.tar.gz', '.'])
def deploy():
prepare()
env['conn'].run("""
if [ ! -e '{0}' ] ; then
mkdir '{0}'
else
:
fi
""".format(env['base_dir']))
env['conn'].run("mkdir '{0}'".format(env['current_dir']))
env['conn'].put(env['theme_name'] + '.tar.gz', remote=env['current_dir'])
env['conn'].run("cd '{0}'".format(env['current_dir']))
env['conn'].run('tar -xzvf ' + env['current_dir'] + '/' + env['theme_name'] + '.tar.gz -C ' + env['current_dir'])
env['conn'].run('rm ' + env['current_dir'] + '/' + env['theme_name'] + '.tar.gz')
env['conn'].run("""
if [ -e '{0}' ] ; then
unlink '{0}'
else
:
fi
""".format(env['themes_dir'] + '/' + env['theme_name']))
env['conn'].run("sudo ln -s '{0}' '{1}'".format(env['current_dir'], env['themes_dir'] + '/' + env['theme_name']))
deploy()
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。