github actionの勉強中
CIでチェックさせて、CDでデプロイさせる
という流れが大体理解出来たので、次は実践として実際にpushしたらエックスサーバーにデプロイさせてみる
これが出来れば少し便利になるかも
手順としては
1、エックスサーバー側でSSH鍵用意
2、github actionの秘密キーに登録
3、ymlでデプロイを記載
4、エックスサーバーにレポジトリをクローンする
この3つになります。
もう既にエックスサーバーでSSHの設定をやっていて、秘密鍵もお持ちなら1番は飛ばしてください。
1、エックスサーバー側でSSH鍵用意
まず、エックスサーバーの管理画面→SSH設定で「公開鍵認証用鍵ペアの生成」をします。

パスフレーズは空白にしてください。
これで確認画面に進むと秘密鍵が生成されるので、PCの
/Users/*****/.ssh/xs★★★★★.key
に保存します。
2、github actionの秘密キーに登録
次にgithubの管理画面で作業です。
github actionの「setting」に進んで、左のメニューの下の方にある
「secrets and variables」
をクリックして「action」をクリック
そしたら、右下にある緑のボタンの
「New repository secret」をクリック

そしたらそれぞれ登録します。
名前は適当でいいですが、後でわかるようにします。
ホスト名 → sv*****.xserver.jp(サーバー管理画面のサーバー情報のホスト名です)
ポート名 → 10022
ユーザー名 → xs*****(サーバーIDのこと、サーバーパネルの一番上に表示されている)
プライベートキー → エックスサーバーで作成した秘密鍵をテキストで開いて丸々コピペする
これをそれぞれ登録します。
ここまでできたら、github側の作業は終わり
3、ymlでデプロイを記載
ここまでできたらymlファイルを作成します。
トリガーはpushにします。
pushするだけで、自動でエックスサーバーにデプロイするようにします。
hoge.yml
name: Xサーバーデプロイ
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
env:
REPO_URL: https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/kyoka-kurimoto/test.git
steps:
- name: コードを取得
uses: actions/checkout@v5
- name: SSH接続用キーファイルを設定
run: |
mkdir -p ~/.ssh
echo "${{ secrets.X_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -p "${{ secrets.X_SSH_PORT }}" -H "${{ secrets.X_SSH_HOST }}" >> ~/.ssh/known_hosts
- name: SSH接続を行い、Xserver上でpullしてデプロイを行う
run: |
ssh -i ~/.ssh/id_rsa -p "${{ secrets.X_SSH_PORT }}" -o StrictHostKeyChecking=yes -T "${{ secrets.X_SSH_USERNAME }}@${{ secrets.X_SSH_HOST }}" "REPO_URL='$REPO_URL' bash -s" << 'EOF'
cd /home/xs377936/github/test/test/ || exit
git pull "$REPO_URL" main || exit
EOF
環境変数の設定で


コメント