Ablogで書いたSphinxブログをGithubにデプロイしてみる

Github にこのブログをデプロイをしてみる。 ということで、初めてのリポジトリを作成。

いきなりつまづく

環境は Windows 10。

Deploy to GitHub Pages の説明通りに ablog deploy とやると、なにやらエラーが出てデプロイできない・・・

まず

そもそも、Githubで2要素認証をオンにしていたことで、そのままではHTTPSで clone や push などができていませんでした。 とりあえずSSH用のキーペアを作って、SSHで push したらデプロイはできました。

(手順は windows git ssh 等で検索)

ちなみに

HTTPSでも push できるようにするには、 Github でアクセストークンを生成すればいいらしい。 ということで、アクセストークンを生成して、HTTPSでも push できるようになりました。

(手順は github access token 等で検索)

しかし

依然として、 ablog deploy は動きません・・・

git push origin master
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'https://github.com': Invalid argument
Traceback (most recent call last):
  File "C:\Python27\Scripts\ablog-script.py", line 9, in <module>
    load_entry_point('ablog==0.8.3', 'console_scripts', 'ablog')()
  File "c:\python27\lib\site-packages\ablog\commands.py", line 401, in ablog_main
    namespace.func(**namespace.__dict__)
  File "c:\python27\lib\site-packages\ablog\commands.py", line 389, in ablog_deploy
    run(push, echo=True)
  File "c:\python27\lib\site-packages\invoke\__init__.py", line 27, in run
    return Context().run(command, **kwargs)
  File "c:\python27\lib\site-packages\invoke\context.py", line 53, in run
    return runner_class(context=self).run(command, **kwargs)
  File "c:\python27\lib\site-packages\invoke\runners.py", line 302, in run
    raise Failure(result)
invoke.exceptions.Failure: Command execution failure!

Exit code: 128

Stderr:

bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'https://github.com': Invalid argument

Githubのアクセストークンを保存する

push するときに、毎回コマンドラインにトークンを貼り付けるのは面倒すぎるので、 Caching your GitHub password in Git に書いてある通り、

git config --global credential.helper wincred

を実行してから一度 push すると、トークンが Windows資格情報 に保存されます。

デプロイできるようになった

アクセストークンを Windows資格情報 に保存してから、 ablog deploy したらデプロイできるようになりました!!

めでたしめでたし。

が、しかし

デプロイはできるようになりましたが、このままでは Mac と Windows で横断的にブログを書く、という個人的要件が満たされません。

自動ビルド&デプロイ

ということで、 Automate GitHub Pages Deploys を参考に、 Travis CI を使って自動ビルド&デプロイできるようにしてみました。

これで、WindowsでもMacでも、Githubに push すれば自動的にデプロイまでできるようになり、 さらにブログのソース管理もできて、言うことなしです。

Comments

comments powered by Disqus