Githubにpushすると,自動でDoxygenドキュメントを生成して,Herokuへ静的ページとしてdeploy.
このポスト: 自動生成ドキュメントを無料で Web 上で最新に保つ(Wercker + Doxygen + Heroku)の通りにやろうとしたら,2016年頃からWercherの仕様が変わったようで,そのままでは実現できなかったので対応してみた.
実現すること
Githubにpushされると自動でDoxygenドキュメントが生成.生成されたドキュメントをHerokuへ静的ページとしてdeployして参照できるようにする.
使用するサービス
- Github
- Wercker
- DockerHub
- Heroku
方法
Dockerイメージの作成
Werckerの仕様変更により,boxとしてwercker-box.ymlが使用できなくなり,代わりにDocker imageを使用する必要がある.
DockerでWerckerの処理を実行するための環境を構築し,DockerHubに置く.既に作成されたimageを使用する場合はこのステップは飛ばす.
Dockerで元ポストで使われているwercker-boxと同じ環境を構築して,DockerHubにpushする.
docker commit
する際のイメージ名は,[自分のDockerHubユーザID]/[任意]
とする.しないとdocker push
時にエラーが出る.
私が作成したイメージ: fiftystorm/box2
Doxyfileの作成
私の場合,デフォルトの状態からの変更点は以下のとおり.
PROJECT_NAME = [プロジェクト名]
OUTPUT_LANGUAGE = Japanese
FILE_PATTERNS = [ソースファイルの拡張子]
SOURCE_BROWSER = YES
ALPHABETICAL_INDEX = YES
EXTRACT_ALL = YES
GENERATE_LATEX = NO
HAVE_DOT = YES
DOT_IMAGE_FORMAT = jpg
DOT_PATH = /usr/bin
CALL_GRAPH = YES
CALLER_GRAPH = YES
あとは,ソースファイルに日本語が含まれる場合,文字化けしないように,HOGE_ENCODING =
UTF-8
or CP932
(Shift-JIS)に気をつける.
作成したDoxyfileは,ドキュメント化するソースファイルの入ったリポジトリに放り込む.
Werckerアプリケーションの作成
ドキュメント化したいGithubのリポジトリに紐付ける.
wercker.ymlの作成
box: fiftystorm/box2:1.3
build:
steps:
- script:
name: document
code: |
doxygen
deploy:
steps:
- script:
name: preparation
code: |
cp -r html/* /heroku-static-provider-master/public/
- heroku-deploy:
install-toolbelt: true
key: $HEROKU_KEY
key-name: HEROKU_KEY_PAIR
user: $HEROKU_USER
app-name: $APP_NAME
source_dir: /heroku-static-provider-master/
wercker.yml内で,元ポストではパッケージのインストールなどが手順に含まれていたが,大半はDocker imageを作成する際に含めてしまった.
編集したwercker.ymlはDoxyfile同様,リポジトリに入れてpushしておく.
Werckerでの設定
pipelineの追加
Workflowsタブのページを見ると,この時点ではWorkflowにbuildしか存在しないはずである.
同ページ下部のAdd new pipeline
から,deployのpipelineを追加する.
- name:
deploy
- YML Pipeline name:
deploy
- Hook type:
Default
を選択
Environment variablesとして以下を作成.
- HEROKU_KEY:
Heroku API key の文字列
(HerokuのAccount settingsから取得可能) - HEROKU_USER:
Herokuユーザー名
- APP_NAME:
Herokuで作成したアプリケーション名
(あらかじめHerokuで作成しておく)
作成したpipelineをWorkflowに追加する
上で追加したdeployのpipelineを,buildの後ろの+ボタンから追加する.
ドキュメントページの作成
ドキュメント化したいソースファイルの入ったリポジトリにpushすると,http://[Herokuアプリケーション名].heroku.com
にページが現れる.
発生したエラーはWerckerのRunsタブのページで詳しく確認できるので,エラーが発生した場合はそちらを参照して問題点を1つずつ潰していく.
Werckerについて
- 良いところ:
- CIサービスとしては珍しく,Githubのプライベートリポジトリに対しても無料で使える.
- 悪いところ:
- 最近仕様が変わったようなので参考にできるものが少ない.
- 今後も同じ仕様で使い続けられるとは限らない.
- 今後も無料で使い続けられるとは限らない.
参考
公式
非公式
- 自動生成ドキュメントを無料で Web 上で最新に保つ(Wercker + Doxygen + Heroku)
- werckerがいつの間にかDockerをサポートしていたので使ってみた。
- Bitbucketで管理しているRailsプロジェクトを新しくなったWerckerを通じてHerokuにデプロイしてみた
今後
- ユーザ認証を設けてログインなどしないと参照できないようにする.
- pushをきっかけに,自動テストも実行されるようにする.
Author And Source
この問題について(Githubにpushすると,自動でDoxygenドキュメントを生成して,Herokuへ静的ページとしてdeploy.), 我々は、より多くの情報をここで見つけました https://qiita.com/fiftystorm36/items/df38a4bdb715999c2570著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .