esa 2 GitHub の .travis.yml を微調整

Copied from: blog/GitHub Page を Hexo で作る

何も考えずに他人の.travis.ymlを適当に使ってたので、ちょっと調整したりした。
本当はpublicをcacheしたいんだけど、どうしてもうまく行かずに一旦ほぼ元のと同じ感じになった。この時間、なんだったんだ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
language: node_js
sudo: false
cache:
apt: true
directories:
- node_modules
node_js:
- '6'
branches:
only:
- esa
env:
global:
- GIT_COMMITTER_NAME=ppworks
- GIT_COMMITTER_EMAIL=koshikawa@ppworks.jp
- GIT_AUTHOR_NAME=ppworks
- GIT_AUTHOR_EMAIL=koshikawa@ppworks.jp
before_install:
- npm install
before_script:
- git config --global user.name 'ppworks'
- git config --global user.email 'koshikawa@ppworks.jp'
- rm -fr public
- git clone --depth=1 --branch=master https://github.com/ppworks/ppworks.github.io.git public
- cd public
- git ls-files | xargs -I {} rm -rf {}
- cd -
script:
- $(npm bin)/hexo generate
- cd public
- git add -A
- git commit -m 'Update'
- git push https://$GH_TOKEN@github.com/ppworks/ppworks.github.io.git master

Travis CIでのHexo自動ビルドエラーについて · Issue #2 · llminatoll/wakaba-review https://github.com/llminatoll/wakaba-review/issues/2

が大変参考になった。ありがたい。

そして、dateが毎回書き換わる問題によって、permalinkも毎回変わってしまってつらかったので、一旦permalinkからdateを消すという雑な対応をした。

https://github.com/ppworks/ppworks.github.io/commit/12eb69754b42587e7c6e6b78b29af83acbed3418

本当はpublicをcacheしたいんだけど、どうしてもうまく行かず

どうもpublic配下のcacheをクリアしても、git-cloneしたrepositoryがmasterブランチになってしまって、コンフリクトし続けてしまった。何か手順がミスっていたかもしれない。

どうせcacheしてもarchiveをネットワーク越しにもってくるし、git clone --depth=1と対して変わらんので、いいかもしれない。

git ls-files | xargs -I {} rm -rf {}

何なの、って思ってたけど、tricknotesさんのコメントをみて理解した。sourcethemeなどから消したファイルの差分を検知するために、一旦雑にワークディレクトリから全ファイルを消してから、hexo generateを実行することで、正しい結果をコミットできる。なるほどだ。