序文
Githubのページが動的プログラム、いくつかの静的コンテンツの出力のみを実行することはできません。したがって、Githubのページは、理想的には前面表示項目に適しています。プロジェクトの説明、プロジェクトのドキュメントや個人的なブログを格納するために使用することができます。この記事では、トラヴィスCIの自動化とGithubのページを展開する方法について説明します。
CI
継続的インテグレーション(継続的インテグレーション)は、開発チームのメンバーは、統合が毎日一日に数回発生する可能性を意味し、通常は各メンバーの少なくとも一体化一度、頻繁に自分の仕事を統合すること、ソフトウェア開発の実践です。(自動テスト、公開、コンパイルを含む)の各統合自動ビルドは全てスルーが、こんなに早くできる限り統合エラーを見つけることを確認します。現在、別のコンテナプロジェクトの環境に合わせて技術を使用しているどちらも多くのCIを中心サークルCIとトラヴィスCI、とのオープンソースプロジェクトをGitHubの。
GitHubのページ
あなたは簡単にファイルを、静的githubのブログが、元の値下げファイルと同様に、リポジトリに保存されているだけで、最終的な生成されたHTML、hexoプロファイル、テーマ設定ファイルを配備変更することができますがhexoはローカルにのみ保存されます。これは、保全に資するものであるが、また、各ブログの変更履歴を表示することはできません。
最大の問題は、それぞれの提出は、その後hexo D生成されたファイル、場所はブログのすべてを再コンパイルする必要がありますので、小さな変更、hexoグラムにする必要がありますということですgithubの上のブログを取ります。
トラヴィスCI&GitHubのページ
例えば私のブログで
coder-lida.github.io
:ブログ静的ファイルリポジトリ
blog-source
:ドキュメントのソースリポジトリの
倉庫に置かれた文書のソースのブログ・ソース、倉庫coder-lida.github.io最終展開ファイル。ブログ・ソースの倉庫の変化の何かが、その後、パブリックディレクトリにhexoグラムHTMLファイルを実行することによって、最終的な展開を生成し、するときに再入力するパブリックディレクトリを初期化gitのリポジトリ、ファイルの追加ファイルを提出し、最終的にリモートコーダにプッシュするために提出することを余儀なく-lida.github.io倉庫。
スタートトラヴィスCI
.travis.yml
Hexo公式サイト構成、同じ倉庫の異なるブランチでの公式の構成が実現しています。私はこの方法では役に立たないけど、2つの倉庫、Webページのプットの展開を作成し、ポストやテーマなど、別のソースファイルのブログを、置きます。
登録とトラヴィスCI設定
トラヴィスCIの公式サイトの
右上のボタンをクリックすると、Githubのログインに使用する
ログインに成功した後に
設定をクリックし、選択したブログウェアハウス・ソースファイルを
GH_TOKENについて
GitHubのにログオンし、[設定]は、ピクチャボックスの右上隅をクリックして
開発者の設定を選択し
たトークンを追加するために
、このようなコールhexoの展開として、トークンの説明を記入する。
例えば、上のチェックに付与された権限を、私がチェックレポや要旨では、作成します。
その結果あなたが紛失した場合、保存トークン文字列のコピーは、のみ再生成するには、バックに使用されます。
生成されたトークンはトラヴィスCIに環境変数として提供されます。
このトラヴィスCIのセットアップは完了です。
.travis.yml追加
最初は、私の設定を掲載しました
language: node_js #设置语言
node_js: stable # nodejs版本
branches:
only:
- master #只监测master分支
cache:
apt: true
directories:
- node_modules # 缓存不经常更改的内容
before_install:
- git config --global user.name "your name" # github用户名
- git config --global user.email "your email" # 邮箱
- npm install -g hexo-cli
install:
- npm i
before_script:
# 无其他依赖项所以执行npm run build 构建就行了
script:
- hexo clean #清除
- hexo generate #生成
after_script:
- git clone https://${GH_REF} .deploy_git # GH_REF是最下面配置的仓库地址
- cd .deploy_git
- git checkout master
- cd ../
- mv .deploy_git/.git/ ./public/ # 这一步之前的操作是为了保留master分支的提交记录,不然每次git init的话只有1条commit
- cd ./public
- git init
- git add .
- git commit -m "Travis CI Auto Builder at `date +"%Y-%m-%d %H:%M"`" # 提交记录包含时间
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master #GH_TOKEN是在Travis中配置环境变量的名称
env:
global:
- GH_REF: github.com/coder-lida/coder-lida.github.io.git #设置GH_REF,换成自己用户名和仓库名
どのような書類は、ソースファイルの倉庫に提出する必要があります
package-lock.json
ファイル.gitignore
プラスファイル
11回の失敗を経験した後、12日が最終的に成功しました。