私は最近、GitHub の Action を使用して安定したブログを構築し、常に存在することを決めました。国内でのアクセスは速くないかもしれませんが、常に利用できるという利点があります。
ただし、従来の方法でブログを GitHub のサイトリポジトリにプッシュする場合、ブログを更新するたびにサイトを再度 Git でプッシュする必要があることを意味します。
もちろん、ローカルの md ファイルでブログを書く人にとってはそれほど問題ではありません。しかし、私はオンラインエディタとして Qexo を自分で構築してしまったため、従来のデプロイ方法は使用できませんでした。以前はこの問題に頭を悩ませていました。
しかし、後で Microsoft の e5 を更新するために GitHub Action を使用しているときに、これがまだあることを思い出しました。それで、自動的にデプロイする GitHub ホスティングサイトを作成しました。
ステップ 1: ローカルでの実行チェック#
デプロイする前に、まずサイトがローカルで正常に実行され、正常な静的サイトファイルが生成されることを確認する必要があります。
Hexo ブログをデプロイします(Hexo のデプロイ方法については、Hexo.io の公式ドキュメントを参照してください)。
デプロイが完了したら、サイトのルートディレクトリで次のコマンドを実行します(コマンドは hexo s と省略できます)。
hexo server
http://localhost:4000 にアクセスし、サイトが正常に表示され、正常に動作することを確認したら、次のコマンドを実行してサイトの静的ファイルが正常に生成されるかどうかを確認します(hexo clean は省略できませんが、hexo generate は hexo g と省略できます)。
hexo clean && hexo generate
正常に生成される場合は、hexo clean をもう一度実行して静的ファイルをクリアし、ローカルでの実行チェックが完了します。
ステップ 2: 設定ファイル#
リポジトリを GitHub にアップロードする方法については、自分で情報を調べてください。ここでは、アップロード後の関連する設定のみを説明します。
まず、Hexo の設定ファイル config.yml に次の設定があることを確認してください。
deploy:
type: git
repository: git@github.com:yzsong06/Demo.git
branch: main
ここで Repository は、GitHub Pages のリポジトリに設定してください。例えば、xxx.github.io という名前のリポジトリです。SSH アドレスを使用することに注意してください。
ステップ 3: キーの生成#
一部のユーザーの場合...
- Windows 10 ユーザーの場合、Ubuntu を Store ストアでインストールできます。
- Android ユーザーの場合、Termux をインストールし、OpenSSH をインストールできます。
- Linux ユーザーの場合、ええ...Linux を使用しているのであれば、わかるはずです(Doge)。
ssh-keygen -t rsa -b 4096 -C "Hexo Deploy Key" -f github-deploy-key -N ""
これにより、現在のディレクトリに 2 つのファイルが生成されます:
github-deploy-key —— 秘密鍵
github-deploy-key.pub —— 公開鍵
秘密鍵を、Hexo の元のファイルを保存しているコードリポジトリに配置し、Actions をトリガーするために使用します。
公開鍵を、GitHub Pages に対応するリポジトリに配置し、Hexo のデプロイ時の書き込み作業に使用します。
秘密鍵の設定:
- GitHub で Hexo のリポジトリを開き、「Settings -> Secrets -> New secret」にアクセスします。
- 名前(Name)の部分に「HEXO_DEPLOY_KEY」と入力します。大文字と小文字に注意してください。これは後でGitHub Actionsで使用するので、間違えないようにしてください。
- 値(Value)の部分に、github-deploy-keyの内容を入力します。
公開鍵の設定:
- 次に、ウェブページを保存するリポジトリにアクセスします。つまり、Hexo をデプロイした後のリポジトリ、例えば Username.github.io などです。Settings -> Deploy keysにアクセスします。
- Add deploy keyをクリックして新しい公開鍵を追加します。
- タイトルに「HEXO_DEPLOY_PUB」と入力します。もちろん、他のカスタム名を入力することもできますが、ここではメモ程度です。
- キーに、github-deploy-key.pubファイルの内容を貼り付けます。
- Allow write accessにチェックを入れて書き込み権限を開きます。そうしないと、リポジトリに書き込むことができず、デプロイに失敗します。
ステップ 4: ワークフローの作成#
まず、Hexo のリポジトリ内に新しいファイル .github/workflows/push.yml を作成します。ファイル名は自由に設定できますが、必ず .github/workflows ディレクトリに配置する必要があります。また、Actionの新規作成機能を使用してファイルを作成することもできます。ファイルの内容は次のとおりです。
name: 部署站点
on:
push:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v1
- name: 设置为 Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: 配置环境变量
env:
HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "yzsong06"
git config --global user.email "yzsong06@outlook.com"
- name: 安装部署时运行环境
run: |
npm i -g hexo-cli
npm i hexo-deployer-git --save
npm i
- name: 生成站点静态文件
run: |
hexo clean && hexo generate
- name: 使用hexo-deployer部署站点
run: |
hexo deploy
ステップ 5: 完了#
これでファイルを保存した後、通常はリポジトリの Action ページでフィードバック結果を確認できます。ジョブが緑のチェックマークで表示されていれば、デプロイに成功しています!