wercker CI
basics
- bitbucketでも使えるし、まだ無料だからこれを使って見ることにする。
- dockerベースもできる
- CLI
- Running builds locally
- localでもbuildできる
- Running builds locally
- box
- workflow
- pipeline
- step
workflow > pipeline > stepの単位で含まれている
Box
wercker pipeline を実行する
node version指定
- https://hub.docker.com/_/node/ここの公式お利用
- 以下のように
:
で指定
box: node:7.3.0
workflow
- workflows introduction
- Defines the sequence of pipelines. Allows for branching (one pipeline completion results in the triggering of multiple pipelines), and limiting to a specific Git branch
- pipelineたちのsequenceを定義
- ブランチングができる
- 意図つのpipllineが終わったら、他の複数のpipelineをtrggerできたり、
- 特定git branchに限定することもできる
workflowの例
- commitのよってbuildがtriggerされる
- triggerしたbranchがdevelopmentであれば、developmentへdeploy
- triggerしたbranchがmasterであれば、stagingへdeploy
pipeline
- The pipeline is the heart and soul of wercker
- Build pipelines are triggered when new code is committed to your source control provider
- Series of steps defined in your wercker.yml file. Can be kicked off by a commit to a specific branch, or on successful completion of another pipeline (via chaining)
step
Steps make up the wercker pipeline and can either be executed in the build or deploy phase within the pipeline.
- npm installしたり
- lintしたり
- scriptやcommand実行したり
- deployしたり
script step
- custom step
- bash scriptで入れることができる
- name, codeが必要
- script:
name: echo python information
code: |
echo "python version $(python --version) running"
echo "pip version $(pip --version) running"
creating step
stepを作る前にscript stepで出来ないのか検討しよう。
http://devcenter.wercker.com/docs/steps/creating-steps.html
- どんな言語でもできるがbashやgolangをおすすめしている
build
timeoutエラーの場合
http://devcenter.wercker.com/docs/faq/how-to-bypass-timeouts.html
# wercker.yml
box: node
...
no-response-timeout: 15 # defaut 5分を変更する max 60分
Services
- services can be databases, queue servers
environment variables
- http://devcenter.wercker.com/docs/environment-variables/index.html
<http://devcenter.wercker.com/docs/environment-variables/creating-env-vars.html<
deployするときに必要なapi_key, passwordなど設定ができる
- wercker.ymlの
$NAME
して wercker adminのApplication settings > Environment variablesで $を抜いた文字列で登録する
やってみよう
setting and build on wercker
- accountを連動すると自動にsshkeyがbitbucketに入るようになっている
修道で入れても大丈夫かな
applicationを作って
- wercker.ymlを入れてpushする
- wercker.ymlの簡単な設定はapplicationを作ったときにsnip codeをcopyできる
- werckerでbuildされた
deploy to s3
reference
react appをs3へdeployしてみる
利用するのは S3sync step
- create deploy target on wercker web admin
- update wercker.yml config
- setting environment variables
- s3 urlは aws cliの s3 syncで利用するURLを指定
s3側のsetting
- bucketを作成
- 静的ベージをhostingできるように設定
- 静的ウェブサイトホスティング
- インデックスドキュメン: index.html
- エラードキュメント: 404.html
- 静的ウェブサイトホスティング
環境によってdeploy pathを変更したい
もし、環境によってs3のbuckerを分けるとしたら
deploy to github
token
https://{TOKEN}@github.com/{ACCOUNT}/{REPOSITORY}.git
local build
First, need to install cli.
Push to github for Github Page
以下の2つのリンクの方法がある
でPluginよりは、Tutorialの方法が柔軟性が高い