読者です 読者をやめる 読者になる 読者になる

卒論を自動ビルドで支える技術

卒論一応出したけど,ちょっとだけ卒論を支える技術みたいな話する.わかってるとは思うけど,これがあるからって卒論ができるわけではない.

概略

  1. git pushする
  2. 自動でビルドが走る
  3. Dropboxみたいなところに投げられる

git pushする

ホスティングはお得意のbitbucketで,private持ち放題なので,githubより安い.ただgithubより重いっていう印象はある.

自動でビルドが走る

今回はwerckerを使ってビルドした.latexのビルドが必要だったから,自分でbox作った.boxとかの作り方は以下を見ればいいと思う. Werckerの仕組み,独自のboxとstepのつくりかた | SOTA

programmerMOT/wercker-latex-box · GitHub

日本語texlive環境が整うようにしている.

あとはプロジェクトのルートディレクトリにwercker.ymlをかけば使える.platexとかdvipdfmxとか入ってると思う.

box: mot/latex-box@0.0.1

Dropboxになげる

werckerからは直接Dropboxに投げられないので,適当なサーバにrsyncするようにして,rsync先でDropboxに投げるようにした. 前もってwerckerの設定で秘密鍵作って公開鍵を送り先サーバに登録しておくと良い.

deploy:
  steps:
    - add-to-known_hosts:
        hostname: <送り先ホスト>
    - mktemp:
        envvar: PRIVATEKEY_PATH
    - create-file:
        name: write key
        filename: $PRIVATEKEY_PATH
        content: $HOST_KEY_PRIVATE
        overwrite: true
        hide-from-log: true
    - script:
        name: transfer application
        code: |
          pwd
          ls -la
          mv master.pdf $WERCKER_GIT_COMMIT-`date '+%Y%m%d-%H%M%S'`-master-mot.pdf
          rsync -avzr -e "ssh -i $PRIVATEKEY_PATH -o StrictHostKeyChecking=no -o UserKnownHostsFile=no" $WERCKER_ROOT/*.pdf mot@<送り先サーバ>:<送り先ディレクトリ>

送り先ディレクトリをDropboxにしておけばおk.

最後に

あとはこのDropboxの公開リンクをレビュワーに配っておけばいい. pushごとにpdfが残るのはバックアップの観点から心に余裕ができていいと思う.